Ничего не понятно, но всё так, как надо.
Где-то в Интернете есть онлайн сервисы, на которых вводишь код на разных языках и смотришь скомпилированный код. Возможно, так можно увидеть через байт-код Луа, как фрагменты компилируются.
А я вчера много времени потратил на выяснение: будет ли ускорение от такой оптимизации в OnAllTrade и в OnQuote, где вычисляется символьное время сделки/изменения в стакане для вывода типа
Код |
---|
UWGN 18:49:59.388251 47.4 482 S
IRKT 18:48:33.469798 bids=20 85.45/1806 85.40/56 85.35/6 85.20/163 85.15/4 85.05/12 85.00/36 84.90/28 84.85/11 84.80/3 84.60/2 84.50/99 84.40/3 84.30/2 84.25/6 84.20/10 84.15/7 84.10/43 84.05/129 84.00/482 offers=3 85.20/15 85.40/13 85.45/512 |
Часы и минуты меняются редко, цена и количество акций в стакане по нелучшим ценам тоже: что, если запоминать эти значения в строках, и если они не изменились, вставлять закэшированные?
Мерял время выполнения этих коллбэков через os.sysdate().mcs, получал 0. Снизил частоту ЦП до 800 МГц, внутри коллбэка сделал цикл на 10 повторов, опять 0. Как-то не верится в такое: слишком быстро. А если повтор цикла увеличить, то выскакивают цифры ~ 5000 мкс, 10000, 15500. Про 15500 я знаю, что это квант времени для работы потока. Поэтому я так и не понял, есть ли от этого ускорение. Ведь в этом случае этой оптимизации придётся делать проверки, что время не поменялось, запоминать новое время, конкатенировать строки... В общем, НИР/ОКР ерундой прозанимался...