Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lua garbage collector - wycieki pamięci

Ostatnio zmodyfikowano 2023-02-19 13:34
Autor Wiadomość
dunno
Temat założony przez niniejszego użytkownika
Lua garbage collector - wycieki pamięci
» 2023-02-19 11:33:27
Pomogliście mi w ubiegłym roku z silnikiem gry (od tamtego momentu 0 crashów https://cpp0x.pl/forum/temat/?id=28730&p=1 ). Dzięki.

Posiadam silnik gry na bazie yurots - źródła: https://github.com/divinity76/YurOTS/tree/master/ots/source i ponownie zwracam się z prośbą o pomoc/wskazówki, lecz już z innym problemem.

Wydaje mi sie ze lua garbage collector nie działa poprawnie.
Np. jest restart serwera, loguje się 60 osób i liczba graczy się utrzymuje i zużycie ramu jest na poziomie 1.2GB to po 24h dochodzi nawet do 2.5GB. Bylibyście w stanie luknać swoim fachowym okiem w source które podesłałem (https://github.com/divinity76/YurOTS/tree/master/ots/source).
Zakładam, że problem jest z LUA i ram nabija, gdy gracze używają czarów i jest związany z LUA znajdujące się w actions/spells.
Gdyby było 0 graczy na serwerze RAM by nie uległ zmianie przez cały czas uruchomienia serwera.
Patrzyłem jak wyglądają destruktory
C/C++
LuaScript::~LuaScript()
{
   
if( luaState )
       
 lua_close( luaState );
   
}
ale moim zdaniem wygląda ok, gdzieś wyczytałem, ze mogę zrobić to tak, ale nie wiem czy to przyniesie jakikolwiek efekt?
lua_gc(L, LUA_GCCOLLECT, 0)
https://stackoverflow.com/questions/45547172/when-is-it-allowed-to-call-lua-gc-in-c-when-also-using-lua-newuserdata

Macie jakieś pomysły z czym tu może być problem? Lua było 5.0, potem było 5.1 i było to samo, więc powrót znowu na 5.0
P-179965
DejaVu
» 2023-02-19 11:54:34
Jest jeszcze coś takiego jak fragmentacja pamięci w systemie operacyjnym. Tak więc możesz mieć memory leaki, a może to wynikać z fragmentacji pamięci.
P-179966
pekfos
» 2023-02-19 13:34:30
Wydaje mi sie ze lua garbage collector nie działa poprawnie.
Bo?
P-179969
« 1 »
  Strona 1 z 1