kontrola paměti

Pokud si nevíte s něčím rady ohledně tvorby v Game Makeru - pište sem!
Post Reply
fffffffffffffffffff
Posts: 1
Joined: March 4, 2018, 1:08 pm

kontrola paměti

Post by fffffffffffffffffff »

Zdravím všechny chytráky,

už delší dobu pracuji s GM8 (ano, vím, stará verze) a narazil jsem na závažný problém s leakováním paměti.
Věřím, že už se s tím též někdo setkal.

Pro test jsem vytvořil nový projekt, 1 sprite, 2 objekty, 1 místnost.
Do místnosti jsem vložil 1. objekt, jež má jedinou funkci, že vytvoří objekt 2, kdekoliv v místnosti kliknu myší.
Objekt 2 má sprite 32x32 a při zmáčknutí mezerníku se zničí přes instance_destroy();

Spustím hru, paměť: 14 632 K
Aniž bych cokoliv provedl, sem tam se to zdvihne o pár desítek…
Začnu zběsile klikat a vytvářet obrazce z instancí objektu 2, paměť: 18 552 K
Stisknu mezerník, paměť: 18 552 K
Čekám, paměť: 18 552 K
Opět začnu klikat, paměť vzroste atd.

Chtěl bych se tedy zeptat jestli nedělám něco od základu špatně. Z debuggeru je očividné, že se po smazání ve hře žádné instance nenachází, přesto GM neuvolní paměť.
Můj dotaz tedy zní: Co musím udělat, abych onu paměť získal zpět?

Díky,

fffffffffffffffffff
chain
Posts: 98
Joined: January 2, 2013, 3:41 pm
Facebook: http://facebook.com/

Re: kontrola paměti

Post by chain »

takto z popisu sa neda objektivne pomoct a poradit, Hod sem kody alebo rovno gm subor. Su dve rozne veci to co vidis a to co sa deje na pozadi. Ci sa po stlaceni nezacne ciklit nejaky vypocet a podobne...
User avatar
Šuny
Posts: 100
Joined: August 8, 2011, 8:45 pm
Facebook: http://facebook.com/suninho

Re: kontrola paměti

Post by Šuny »

Myslím si, že je to jen v tom malém meřítku, při více objektech a větší zátěži, pokud objekty smažeš, pamět se uvolní, nikoliv asi všechna, ale uvolní...
User avatar
ipq
Posts: 928
Joined: August 15, 2011, 7:31 pm
Location: Petržalka

Re: kontrola paměti

Post by ipq »

Staré verzie občas trpeli únikom pamäti, aj keď si dal vytvoriť sprite a potom zmazať nezmazal sa celý, niečo s toho tam ostalo napr. aj chyba, že objekt nemá sprite, neustále pripočítava hodnotu počtu snímkov aj keď žiadne nemá lebo chýba tam sprite, ktorý by to "zabrzdil" aby tam nebežala zbytočne animácia alebo čo boli 3D modely, čo boli statické(dynamické boli jedna veľká bolesť), pri zmazaní sa z RAMky neočistili. Bola aj jedna DLL knižnica, ktorá to vedela vyčistiť pamäť s hry ale bola nespoľahlivá.

Asi najväčšia vec, čo v GM dlhodobo chýbala bol Garbage Collector, ktorý tuším nemajú ani nové verzie, lebo ten "neporiadok" bola jedna pohroma.
Post Reply