Позвольте мне сосредоточиться на вашем вопросе:
добавление значений в ассоциативный массив
по одному
Таблицы в Lua являются ассоциативными, но их использование в виде массива (1..N) оптимизировано. Они имеют двойные лица внутри.
Итак. Если вы действительно добавляете значения ассоциативно, следуйте приведенным выше правилам.
Если вы используете индексы 1..N, вы можете принудительно настроить одноразовый размер, установив t [100000] = что-то. Это должно работать до предела оптимизированного размера массива, указанного в источниках Lua (2 ^ 26 = 67108864). После этого все ассоциативно.
p.s. Старый метод 'setn' обрабатывал только часть массива, поэтому он не используется для ассоциативного использования (игнорируйте эти ответы).
p.p.s. Вы изучали общие советы по поддержанию высокой производительности Lua? то есть знать создание таблицы и, скорее, повторно использовать таблицу, чем создавать новую, использовать «local print = print» и т. д., чтобы избежать глобального доступа.