Size: a a a

2021 October 20

IS

Ivan Stepanov in pro.lua
Фибоначчи есть, конечно
источник

RM

Roy Mustang in pro.lua
Вопросик по поводу памяти есть.
Если у нас есть таблица, то для ее освобождения надо дать ей nil, так?
А если у это таблицы есть объект с несколькими полями, то установка nil на эти поля как то влияет на память?
local table = {}
table = nil  // освободит память когда сборщик мусора пройдется?
источник

RM

Roy Mustang in pro.lua
другой пример
local tables = { name = "Vasya", age = 21 }
tables.name = nil
источник

RM

Roy Mustang in pro.lua
Влияет ли как то nil в обеих случаях на память и сборщик мусора?
источник

AZ

Aydar Zarifullin in pro.lua
Тут освободит даже без table = nil, как только кончится область видимости table
источник

RM

Roy Mustang in pro.lua
а если глобальная таблица или объект
источник

AZ

Aydar Zarifullin in pro.lua
А если глобальная то наверное когда-то после присвоения nil сборщик уберёт при условии что других ссылок нет.
источник

RM

Roy Mustang in pro.lua
Я вот не понял, а если есть ссылки на локальный объект или глобальный?
источник

AZ

Aydar Zarifullin in pro.lua
Если в глобальной таблице сделать ссылку на локальный объект то он будет жить до тех пор пока ты не установишь эту новую ссылку в nil
источник

IS

Ivan Stepanov in pro.lua
!
полезная инфа
источник

AZ

Aydar Zarifullin in pro.lua
Последнее сообщение отредактировал, может понятнее станет, но не факт что это правда :)
источник

RM

Roy Mustang in pro.lua
Понял, прочитал, спасибо
источник
2021 October 21

IS

Ivan Stepanov in pro.lua
if (lua_getglobal(L, LUA_ABILIBNAME)) {
 lua_callfield(L, "run", 0, 0);
 //...
 lua_pop(L, 1); // --> правильно ли?
} else {
 log_e(LUA_ABILIBNAME" not loaded");
}
источник

IS

Ivan Stepanov in pro.lua
я pop-аю LUA_ABILIBNAME
источник

IS

Ivan Stepanov in pro.lua
> Pops n elements from the stack.
да, всё так
источник

IS

Ivan Stepanov in pro.lua
а внутри Cи функции попать аргументы перед return не надо?
источник

AZ

Aydar Zarifullin in pro.lua
Можно чистить а можно не чистить, после return'a Lua автоматически чистит стэк.

"From the point of view of C, a C function gets as its single argument the Lua state and returns (in C) an integer with the number of values it is returning (in Lua). Therefore, the function does not need to clear the stack before pushing its results. After it returns, Lua automatically removes whatever is in the stack below the results."
источник

S

Snusmumriken in pro.lua
При недостатке оперативки лучше чистить, но наверное не в конце каждой функции а каждого тика.
источник

LU

Lucky Uk in pro.lua
Нет бы нормально озу напхать.
источник

VM

Vadim Misbakh-Solovi... in pro.lua
1024 петабайта?
источник