Перейти к содержанию
  • записи
    104
  • комментариев
    125
  • просмотра
    15 632

CE Lua чистка памяти от утечек


MasterGH

2 117 просмотров

ИМХО отказываться от CE Lua скриптов из-за утечек памяти не стоит.

Можно чистить память следующим образом

function startCollectgarbageProcess(interval, showStatus)
  local timer1 = createTimer(true)  
  timer1.Interval = interval  
  timer1.onTimer = function ()  
    if (showStatus) then
      print(string.format('Lua memory usage %.1f MiB',collectgarbage('count')/1024))
    end 
    collectgarbage("restart")
    collectgarbage("collect")    
    if (showStatus) then
      print(string.format('Lua memory usage %.1f MiB',collectgarbage('count')/1024))
    end    
  end
end

-- Собирать каждую 1 минуту и показать результат
startCollectgarbageProcess(60000, true)

 

  • Плюс 2

4 Комментария


Рекомендуемые комментарии

А разве нельзя написать сборщик мусора, который бы следил за памятью и высвобождал, то что уже никто не использует? Хотя, странно писать сборщик для какого-то таймера и загоняться об утечке с <4 гб. Просто, я не понимаю как из-за таймера может быть утечка, 

Ссылка на комментарий
6 часов назад, ReWanet сказал:

Я и не говорю что стоит отказываться от LUA в CE :) Он достаточно полезный.

Я тоже не говорю, что стоит отказываться от Lua в CE. Тоже могу сказать, что достаточно полезный. Хотя ничего не писал месяца 4.

 

2 часа назад, kiwipapayamongoose сказал:

А разве нельзя написать сборщик мусора, который бы следил за памятью и высвобождал, то что уже никто не использует? Хотя, странно писать сборщик для какого-то таймера и загоняться об утечке с <4 гб.Просто, я не понимаю как из-за таймера может быть утечка, 

 

Размер свободной ОЗУ уменьшался в плагинах на событии движения мышки по окну Lua-шного дизассемблера. Больше гигабайта за минут 30 и дальше - больше. Вариант выше эту проблему исправил. Потом вышел fix и это дело поправили.

Ссылка на комментарий
3 часа назад, MasterGH сказал:

Размер свободной ОЗУ уменьшался в плагинах на событии движения мышки по окну Lua-шного дизассемблера. Больше гигабайта за минут 30 и дальше - больше. Вариант выше эту проблему исправил. Потом вышел fix и это дело поправили.

А разве не из-за этого начался весь сыр бор про то что СЕ кушает память.

Так там именно из-за OpenProcess кушалась память и я Баракуда дал там решение.

 

Ну а потом начался полный ПЕС предел.:D

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.