элементам таблицы типа
{ Input1 = “Output1”,
Input2 = “Output2”,
и так далее}
Или будет производительнее парсить входящие строки «на лету»?
Процессор слабенький 😅
Не особо. Если хочешь адового ускорения (нет) — закешируй значения а ля local input1 = conf.input1 local input2 = conf.input2 function foo(data) return spi.receive(data, input1) end При изменениях в твоей табличке, полагаю, а ля conf = { Input1 = “Output1”, Input2 = “Output2”, ...}, кеш придётся обновлять, так что оно хорошо работает если ничего не меняется.
Спасибо! Ничего меняться не будет, оно типа константа ))
идексация занимает от O(1) до O(log(n)) (хеш таблица). "сравнение строк" коротких посимвольно производится только при их создании(там не только сравнение, но не суть). короткие строки (меньше 255 символов) сравниваются по указателю, так что это весьма быстро (так как строки, как уже подметили выше, константны и уникальны на весь стейт.) Если хочешь ещё быстрее - юзай luajit, (если он есть под твою платформу) индексация часто используемых таблиц там будет закеширована, как и в целом будет компиляция в нативный код на лету.
Да, строки короткие, до 100 символов примерно. А так - только 5.1 и спецбиблиотеки. В основном это шлюз будет. Один телнет открыл, 10 процентов съело )) Вот и приходится о производительности беспокоиться.
Обсуждают сегодня