FreeMem und FreeVidMem
Übersicht

JumperBetreff: FreeMem und FreeVidMem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Seit einigen Tagen bin ich nun stolzer Besitzer von BMax, und ich muss sagen die Entscheidung BMax zu kaufen war gut! Lange hat es nicht mehr so viel Spass gemacht was 'Neues' zu lernen, auch wenn ich am Anfang Superscript verflucht habe. Aber schon nach kurzer Zeit sehe ich das als sehr nützlich an, man muss sich nur daran gewöhnen.
Um besser zu lernen und keine groben Performence-Fehler zu machen würde ich gerne den freien Ramspeicher und den freien Grafikspeicher auslesen können. Geht das irgendwie? Denn so kann man sehr schön seine Fehler finden, vor allem sehen ob alle momentan nicht benötigten Grafiken entladen sind. Man kann ja mit 'Incbin' Grafik und Sound in die Exe einbinden. Macht das Sinn? Angenommen ich brauch im Titel eines Spiels einen Song und einige Grafiken und im Spiel selber andere Songs und Bilder. Da wäre es ja nicht so schön, wenn ständig alle Daten im Ram liegen würden, vor allem wenn man viele Bilder und Songs benötigt. Ist das so, oder lagert BMax die Daten als Temp auf der Festplatte aus? |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
"GCMemAlloced" gibt dir zurück, wie viel Speicher dein Programm verbraucht.
Damit solltest du Speicherlecks auch finden können. Eine Funktion, die die Größe des freien Arbeitsspeichers zurückgibt, scheint es leider nicht zu geben. Wie es aussieht, ist es in BlitzMax auch nicht ohne Umwege möglich, die Grafikkartenspeicherauslastung zu bestimmen. Wenn aber regelmäßig Bilder geladen werden, wirst du das auch bei der Arbeitsspeicherausnutzung bemerken. ![]() Eine Sache solltest du beachten: BlitzMax hat einen Garbage Collector. Das heißt, dass jedes Objekt, zu dem es keine Referenz mehr gibt, freigegeben wird. (Im Threaded-Modus ist es leicht anders.) Wenn du also dafür sorgst, dass die entsprechenden Objekte aus jeder Liste und Variable verschwinden, werden sie auch nicht mehr im Speicher bleiben. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Lord Stweccys |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzMax lagert die Daten eigentlich nicht als temporale Datei auf der HDD aus.
Ob sie die ganze zeit im RAM liegen kann ich dir leider nicht sagen, dazu fehlen mir nötige PE-Kentnisse. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe kleine Tests dazu gemacht:
Es wird anscheinend alles, was mit IncBin in der Datei integriert wurde, in den virtuellen Speicher geladen. Im "echten" Arbeitsspeicher landete es erst, als man es verwendet hat. (Das liegt aber an der Art, wie Windows den Speicher verwaltet.) Wann man es nun nutzen sollte oder nicht, kann ich jetzt nicht so wirklich sagen. Dieses System wird aber seine Vor- und Nachteile haben. Bei großen Datenmengen sollte man aber seine Finger davon lassen, da ansonsten das Compilieren sehr lange dauern kann und ziemlich viel Arbeitsspeicher "frisst". (vom Speicherverbrauch beim Starten des Programmes mal abgesehen) mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Jumper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, 'Print GCMemAlloced()' funktioniert wunderbar um Speicherleaks zu finden!
Incbin werde ich dann mal testen wenn ich an meinem ersten Spiel mit BMax arbeite. Aber im Moment wird noch geübt.... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group