Вопрос к знающим и к поддержке: почему происходит утечка памяти? Версия Quik 8.10.1.1
Ниже привожу коды скриптов. С первым память утекает просто моментально. Со вторым меньше и не так резво, но утечка все равно есть.
Код |
---|
is_run = true
function main()
while is_run do
local dt = os.date("!*t", os.time())
sleep(500)
end
end
function OnStop()
is_run=false
end
|
Второй скрипт, утечка меньше, но имеется (нужно запустить и подождать минут 5, запомнив изначальное значение выделенной памяти)
Код |
---|
is_run = true
function main()
while is_run do
local curHour = tonumber(os.date("%H", os.time()))
local curMin = tonumber(os.date("%M", os.time())) -- %S - сек
local curDay = tonumber(os.date("%w", os.time())) -- диапазон, 0-6, соответствует Sunday-Saturday
local year = tonumber(os.date("%Y", os.time()))
local month = tonumber(os.date("%m", os.time()))
local day = tonumber(os.date("%d", os.time()))
sleep(500)
end
end
function OnStop()
is_run=false
end
|
Сразу поясню: эти два скрипта в таком виде НЕ несут смысловой нагрузки. Они являются лишь частью рабочего скрипта. Но именно этот код вызывает утечку. Посмотреть это можно открыв окно "Доступные скрипты" и наблюдать за колонкой "Память, KB". Для первого скрипта она будет расти, как бешеная сразу после запуска. Для второго не так сильно и куда медленнее, но расти будет.
Собственно, вопрос: че происходит?! Т.е. даже если нет сборщика мусора - это ведь не повод жрать память бесконтрольно! К слову сказать, обнуление переменных с помощью "х = nil" - не помогает! Использование глобальных переменных вместо local так же не помjгает! Отсюда вопрос: че за дичь?!