• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

Что является более эффективным для этого 2-го типа кода в FunC?

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-func
1 Сообщения 1 Posters 22 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано Answers
    #1

    Случай 1:

    () recv_internal(int my_balance, int msg_value, cell in_msg_full, slice in_msg_body) impure {
        slice cs = in_msg_full.begin_parse();
        int flags = cs~load_uint(4);
        if ((flags & 1) | (in_msg_body.slice_empty?())) {
            return ();
        }
        slice sender = cs~load_msg_addr();
    
        int op = in_msg_body~load_uint(32);
        ;;     (int op, int query_id) = (in_msg_body~load_uint(32), in_msg_body~load_uint(64));
        
        if (op == op::claim) {
            query_id = in_msg_body~load_uint(64);
    				;; .....code..... ;; 
        }
    
        elseif (op == op::process_claim) {
            query_id = in_msg_body~load_uint(64);
    				;; .....code..... ;; 
        }
    }
    

    Случай 2:

    () recv_internal(int my_balance, int msg_value, cell in_msg_full, slice in_msg_body) impure {
        slice cs = in_msg_full.begin_parse();
        int flags = cs~load_uint(4);
        if ((flags & 1) | (in_msg_body.slice_empty?())) {
            return ();
        }
        slice sender = cs~load_msg_addr();
    
        ;; int op = in_msg_body~load_uint(32);
    		(int op, int query_id) = (in_msg_body~load_uint(32), in_msg_body~load_uint(64));
        
        if (op == op::claim) {
            ;; query_id = in_msg_body~load_uint(64);
    				;; .....code..... ;; 
        }
    
        elseif (op == op::process_claim) {
    					;; query_id = in_msg_body~load_uint(64);
    				;; .....code..... ;; 
        }
    }
    

    Как вы можете видеть, разница заключается только в вызове query_id = in_msg_body~load_uint(64) сначала или внутри метода if. Должны ли мы обратить внимание на эффективность использования газа в данный момент?


    Оригинал вопроса

    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.