BASIC

Author Topic: Schon wieder eine RAM Frage  (Read 2413 times)

Offline nabz32

  • Community Developer
  • Dr. Type
  • ******
  • Posts: 307
    • View Profile
Schon wieder eine RAM Frage
« on: 2015-Sep-24 »
Hallo,

ich habe Unterschiede beim Speicherverbrauch zwischen Debug Modus und normaler Kompilation.

Beim Testen mit dem Debugger fiel mir auf, dass mein Speicherverbrauch sich
erwartungsgemäß geändert hat ( weniger Polygone auf dem Schirm, weniger Speicherbelastung &u. ).


Wenn ich es im normalen Modus kompiliere und teste,
ist der Speicherverbrauch deutlich geringer als im Debug Modus, wenn ich die Karte neu geladen habe,
wächst aber nach einer Reihe von Polygon Erstellungen und Löschungen ( Karten scrolling ) auf den Wert,
welchen ich im Debug Modus beim Laden der Karte beobachtet habe und verhält sich danach
auch so wie im Debug Modus.

Weis jemand woher dieser anfängliche Speichervorteil vom normalen Modus im vergleich zum Debug Modus
kommen kann?

PS: Es wäre auch schön, wenn man überprüfen könnte, ob eine Objekt Nummer frei ist, oder
schon belegt wurde ( durch loadobj, objstart etc. )




Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10708
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Schon wieder eine RAM Frage
« Reply #1 on: 2015-Sep-25 »
X_getfaces könnte klappen.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5018
  • O Rly?
    • View Profile
Re: Schon wieder eine RAM Frage
« Reply #2 on: 2015-Sep-25 »
Wie Gernot schon sagt:
Eine Routine erstellen, die anhand der Faces checkt, ob das Objekt vorhanden ist.
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline nabz32

  • Community Developer
  • Dr. Type
  • ******
  • Posts: 307
    • View Profile
Re: Schon wieder eine RAM Frage
« Reply #3 on: 2015-Sep-25 »
X_NUMFACES() hat gute Dienste geleistet,

jetzt weiß ich wenigstens, dass wirklich nur die gezeichneten Dreiecke gezeichnet werden
( habe die Inhalte meiner DrawMap mit allen Objekten, die er maximal in der gegebenen Reichweite
zeichnen kann, verglichen. Die Dateien stimmen überein und passen auch zu den Situationen in denen
diese Objekt Listen erstellt wurden. )

Trotzdem steigt der Speicherverbrauch, wenn gescrollt wird, an,
bis zu einem bestimmten Wert auf den sich der Verbrauch einpendelt.
( der passt auch immer zu den maximalen Face Situationen die auf der Karte zu erwarten sind. )

Wie gesagt der Speicherverbrauch steigt, selbst wenn die Anzahl der Faces auf der Karte gleich bleibt.
Kommt man zu einer Stelle wo weniger faces erstellt sind ( ein großes Loch zB. )
bleibt der Speicherverbrauch hoch, sinkt dann aber plötzlich ab.
Ich habe meine Testdateien einmal vor der plötzlichen Speicherfreigabe und danach erstellt,
die Anzahl der Terrain Objekte im Speicher ist bei beiden Dateien gleich.

Im Debug Modus scheint der Ram Verbrauch besser die jeweilige Objektsituation auf
der Karte wider zu spiegeln.
( Nutze nicht den Taskmanager, sondern PERFMON um mir den Verbrauch anzeigen zu lassen )