Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Hab mir eben mal die Zeit genommen den Speicherverbrauch von Terrorcide im Taskmanager zu begutachten, und dabei ist mir dann aufgefallen dass es vom Start weg (Hautpmenü) stolze 66 MByte belegte, und in der vierten Mission (nachdem ich durch alle anderen Missionen per Debug-Key gesprungen bin) sogar knapp 81 MByte Speicher.
Hab mir daraufhin mal die Texture.pas angesehen (in der ich schonmal ein Speicherloch gefunden habe) und festgestellt, dass beim Laden von komprimierten TGA-Dateien (da die Komprimierung dort ja verlustfrei ist, wäre es ziemlich verschwenderisch diese nicht zu nutzen) der Pointer auf die Komprimierten Bilddaten (Variablenname ist CompImage) nicht freigegeben wird, wodurch natürlich recht schnell (besonders wenn während der Laufzeit Texturen nachgeladen werden) ein unschönes Speicherleck entsteht. Hab das mal mit if Assigned(CompImage) then FreeMem(CompImage) gestopft, und siehe da : Statt der 66 MByte beim Start nur 51 MByte Speicherbelegung, die sich auch nachdem für jede Mission das neue Hintergrundbild geladen wurde wieder auf 51 MByte einpendelt.
Wollte das nurmal gesagt haben, für den Fall das jemand diese Unit zum Laden komprimierter TGAs nutzt.
Hi,
hatte auch für das Memory kurzzeitig komprimierte tgas verwendet. Aber davon bin ich ab, aus folgendem Grund:
Zwar sind die so auf der Platte kleiner, jedoch ist die selbe Textur unkomprimiert als Zip kleiner, als die komprimierte.
Da Festplattenplatz heute nicht mehr das Problem ist, nehm ich unkomprimierte, dass die zip (Später Setup) kleiner ist.
Ich habe auch die Erfahrung gemacht, dass es, wenn man wirklich verlustfreie Texturen haben möchte, es gar nicht so ungeschickt ist, diese völlig unkomprimiert abzulegen, da man sie ja ohnehin zur Laufzeit über einen Zip Stream laden kann - dann ist es auch nicht notwendig, diese auf der Platte zu entpacken, und man spart im Endeffekt oft noch etwas Festplattenspeicher.
Mitglieder in diesem Forum: Google [Bot] und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.