Блог им. FineLogin
20220915,090000,61420,61497,61406,61464,241
20220915,090100,61460,61476,61420,61451,160
20220915,090200,61444,61489,61436,61479,185
Осмелюсь предположить, что эти строки ты заливаешь в массив с помощью string.match. Это готовый парсер строки с разделителем. Работает достаточно шустро. Я на нем сидел пару лет.
Когда данных не много, такой метод загрузки не напрягает. Но когда за день 20-30 раз загружаешь сотни тысяч или миллион строк, то потери времени становятся невыносимыми.
Стал искать способ ускорить этот процесс. И он таки нашелся. Выяснил следующее:
Если строки в файле истории сконвертировать в такой вид (делается 1 раз):
table.insert(MyTable,{«20220915»,«090000»,61420,61497,61406,61464,241})
table.insert(MyTable,{«20220915»,«090100»,61460,61476,61420,61451,160})
table.insert(MyTable,{«20220915»,«090200»,61444,61489,61436,61479,185})
и в цикле выполнять load каждой строки, то скорость загрузки исторических данных вырастет примерно в пять раз.
В пять раз, Карл!
Бери и пользуйся))
Сразу получится в 10 раз быстрее.)
ускорение происходит за счет того, что вместо парсинга строк происходит заливка массива напрямую
MyTable = {{Str1}, {Str2},....., {StrN}}
Сразу получаем готовую переменную MyTable, без всяких insert.)
Или как-то так. Подзабыл я слегка Lua.
… подумай о том, что в жизни надо что-то менять )))
(Шутка. Возможно, действительно полезный лайфхак. Не могу оценить.)
пример:
MyTable[1]={«20220915»,«090000»,61420,61497,61406,61464,241}
MyTable[2]={«20220915»,«090100»,61460,61476,61420,61451,160}
Если надо быстрее то надо отдельно один раз компилять регулярку а потом использовать много раз.
Например используя => github.com/mah0x211/lua-regex
------------
Это же тривиально.