Господа, прошу подсказать.
Мои скрипты работают на луа. Я объединяю данные в огромную таблицу.
Вот образец данных:

Таких файлов десятки.
Я их склеиваю в одну большую таблицу с помощью функции:
В итоге получается огромная таблица, которая сильно забивает память.
---
Вот как это выглядит на виртуалке.

А теперь мой вопрос.
в конце работы скрипта я УБИВАЮ эту гигантскую таблицу с помощью строчки
t_big=nil
Надеюсь, что при этом будет освобождена память.
Но этого не происходит.
Более того. Остановка скрипта не освобождает память.
Она освобождается только с выключением КВИКа
подскажите как освобождать память силами самого скрипта.
Спасибо.
---
П.С. Я знаю, что мой подход сам по себе не совершенен. Иду по пути переноса громоздких функций в dll. Но в силу слабеньких мозгов мне ещё далеко до этого. Так что пока работаю в рамках Луа.
Мои скрипты работают на луа. Я объединяю данные в огромную таблицу.
Вот образец данных:

Таких файлов десятки.
Я их склеиваю в одну большую таблицу с помощью функции:
| Код |
|---|
function tableMerge(table1, table2)
for k,v in pairs(table2) do
--deceleration()
table.insert(table1,v)
--проверим качество данных в таблице. Нет ли разрывов в записях.
-- if v.stime-(remember_prev_time or v.stime)>100 then
-- mm("в таблице дырка "..v.stime.." "..v.bid)
-- end
remember_prev_time=v.stime
end
remember_prev_time=nil
return table1
end |
---
Вот как это выглядит на виртуалке.

А теперь мой вопрос.
в конце работы скрипта я УБИВАЮ эту гигантскую таблицу с помощью строчки
t_big=nil
Надеюсь, что при этом будет освобождена память.
Но этого не происходит.
Более того. Остановка скрипта не освобождает память.
Она освобождается только с выключением КВИКа
подскажите как освобождать память силами самого скрипта.
Спасибо.
---
П.С. Я знаю, что мой подход сам по себе не совершенен. Иду по пути переноса громоздких функций в dll. Но в силу слабеньких мозгов мне ещё далеко до этого. Так что пока работаю в рамках Луа.