Господа, прошу подсказать.
Мои скрипты работают на луа. Я объединяю данные в огромную таблицу.
Вот образец данных:
Таких файлов десятки.
Я их склеиваю в одну большую таблицу с помощью функции:
В итоге получается огромная таблица, которая сильно забивает память.
---
Вот как это выглядит на виртуалке.
А теперь мой вопрос.
в конце работы скрипта я УБИВАЮ эту гигантскую таблицу с помощью строчки
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. Но в силу слабеньких мозгов мне ещё далеко до этого. Так что пока работаю в рамках Луа.