Перейти к содержимому
  • 0
SergOmarov

Когда память очищается?

Вопрос


local function()
local a="aaaa"
print(a)--a
end
print(a)--nil
--a не видна, но она все еще находится в памяти?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Сборщик дряни автоматически собирает те переменные, которые становятся недоступными. Причём есть некоторая пауза между уборкой.

Подробнее здесь: http://www.lua.org/manual/5.3/manual.html#2.5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можешь проверить интервал сам с помощью:

setmetatable({},{__gc=function()print("Произошла очистка памяти")end})

Вставь это в какую-нибудь программу или попробуй в интерпретаторе.

Интервал разным будет, разумеется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...