Speicher wird nicht freigegeben
Verfasst: 14.09.2021 23:04
Hallo!
Ich stoße bei diesem und stieß bei meinem letzten größen Source (20,000-30,000 Zeilen) auf ein seltsames Problem: der Speicher wird nicht freigegeben, bzw. in Taskmanager steigt der verbrauchte Speicher kontinuierlich an. Egal ob Windows oder Konsole: wenn ich die Fenster minimiere/maximiere wird der Speicher erst freigegeben. Je mehr passiert mit Alloc/Free, desto schneller steigt der Verbrauch. Im Leerlauf sind es ca. 4k die Sekunde, und wenn da größere String Operationen und viel Alloc/Free genutzt wird sind das mal schnell 3-4 MB die Sekunde (auch bei Fullscreen, windowed screen oder reine Konsolen app). Hier muß wohl irgendein Garbage Collection Zyklus bei Windows angeschubst werden. Der Speicherverbauch steigt egal ob im minimierten Fenster oder maximierten/normalen/2D Fullscreen. Erst wenn man hin und her wechselt fällt der Verbrauch auf die tatsächlich genutzte Menge. Nach ein paar Minuten ist dann der Speicher voll, obwohl eigentlich nur 1,5MB benötigt werden inclusive Lua mit nur ca. 200k. Lua wurde so konfiguriert daß es auch nur PB-Funktionen für alloc/free benutzt und kommt nicht als Verursacher in Frage weil der Bug auch vorher auffiel. Der Lua Verbrauch ist <200k während Verbrauch im Taskmanager auf über 200MB ist und steigt beispielsweise, obwohl nur 2-3 Bilder/Sprites da sind und ansonsten nur Text und Skripte verarbeitet werden (viele alloc/free Aufrufe). Dann minimiert/maximiert man ein Fenster der App, egal welches, und der Verbrauch fällt im Taskmanager wieder auf 1,5MB. Was soll ich jetzt tun?
WindowsXP 32 bit.

Ich stoße bei diesem und stieß bei meinem letzten größen Source (20,000-30,000 Zeilen) auf ein seltsames Problem: der Speicher wird nicht freigegeben, bzw. in Taskmanager steigt der verbrauchte Speicher kontinuierlich an. Egal ob Windows oder Konsole: wenn ich die Fenster minimiere/maximiere wird der Speicher erst freigegeben. Je mehr passiert mit Alloc/Free, desto schneller steigt der Verbrauch. Im Leerlauf sind es ca. 4k die Sekunde, und wenn da größere String Operationen und viel Alloc/Free genutzt wird sind das mal schnell 3-4 MB die Sekunde (auch bei Fullscreen, windowed screen oder reine Konsolen app). Hier muß wohl irgendein Garbage Collection Zyklus bei Windows angeschubst werden. Der Speicherverbauch steigt egal ob im minimierten Fenster oder maximierten/normalen/2D Fullscreen. Erst wenn man hin und her wechselt fällt der Verbrauch auf die tatsächlich genutzte Menge. Nach ein paar Minuten ist dann der Speicher voll, obwohl eigentlich nur 1,5MB benötigt werden inclusive Lua mit nur ca. 200k. Lua wurde so konfiguriert daß es auch nur PB-Funktionen für alloc/free benutzt und kommt nicht als Verursacher in Frage weil der Bug auch vorher auffiel. Der Lua Verbrauch ist <200k während Verbrauch im Taskmanager auf über 200MB ist und steigt beispielsweise, obwohl nur 2-3 Bilder/Sprites da sind und ansonsten nur Text und Skripte verarbeitet werden (viele alloc/free Aufrufe). Dann minimiert/maximiert man ein Fenster der App, egal welches, und der Verbrauch fällt im Taskmanager wieder auf 1,5MB. Was soll ich jetzt tun?
WindowsXP 32 bit.