Game maker virtueller speicher wird überlastet oO

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Game maker virtueller speicher wird überlastet oO

    hi!
    Ich wollte fragen ob man game maker etwas ändern kann,
    das die spiele nicht so viel virtuellen speicher fressen ? :D
    ich habe ein onlinespiel und nach ca 30 min steht da virtueller speicher ist überlastet oO
    danke schonmal ^^
  • Virtueller Speicher? Wieviel RAM hast du denn in deinem PC? 8|
    Der Virtuelle speicher wir grundsätzlich nur benutzt wenn dir der Physikalische RAM Speicher ausgeht. Bbei einem Game Maker Spiel sollte dies nie der Fall sein. (geschweige denn bei dem Virtuellen Arbeitspeicher...)

    Mehr infos wären auch nett wie z.B: Betriebssystem, bei welchem Spiel das auftritt, Leistung deines PCs (u.a Ram größe), usw...
    Mit den mageren Infos die du uns gegeben hast können wir dir auf die schnelle nicht helfen.
  • Das muss bedeuten dass du einige memory-leaks hast. Also z.B. das irgendwo dauernd datenstrukturen/surfaces/resourcen erstellt und nicht gelöscht werden... Kann leicht passieren.

    Eines kannst du noch versuchen, nähmlich diese Dll zu benutzen: gmc.yoyogames.com/index.php?showtopic=438215

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • hmmm... also bei der 39 DLL kann ich mich errinern dass es passieren kann dass einzelne Informationen im RAM Speicher selbst nach dem beenden des Games zurückbleiben können. (weiss aber nicht ob die Aussage von mir korrekt ist. Ist nur ne Vermutung.)

    Dafür gab es eine eigene Funktion um den Ram Speicher zu leeren. (dllfree(); oder etwas ähnliches).
    Es könnte also sein dass du dies nicht beachtet hast, und das Game deinen Ganzen RAM Speicher zugemüllt hat. Dannach musste das Betriebssystem auf den irtuellen RAM zurückgreifen. Wenn der auch klar begrenzt ist, dann kommt dir eben so eine Fehlermeldung wie du sie geschildert hast.

    Prüf im Taskmanager nach (STRG+alt+enf >Tasmanager) nach wie groß die Auslagerungsdatei (sprich: Ram verbrauch) ist.

    /Edit: oder versuch das was Dragongamer gesagt hat. :)
  • Nico001 schrieb:

    ja CleanMem funkt perfekt danke!

    Ja, aber denk dran. Cleanmem ist nur eine Art Ergänzung. Es ist keine Lösung meienr meinung nach. Ich hab ein recht komplexes Spiel, mit vielen DS und komme nicht annähernd an einen vollen Speicher ran. Der Fehler muss woanders liegen.


    Wohoh, Yay 1000ster Post xD

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()

  • Auch mal dran gedacht vor jedem writebyte(...) clearbuffer() hinzuschreiben.
    Denn der Buffer muss vor jedem Senden geleert werden, sonst wirds immer mehr und mehr. :pinch:
    Man sollte es machen wenn man was in den Buffer schreibt und nicht bei jeden writebyte man benutzt den Datentyp am Anfang für die ID, da die wahrscheinlich nie grösser als 255 wird. Wenn man das clearbuffer vergisst wird immer das selbe gesendet nur eben mit mehr am Ende siehe:

    GML-Quellcode

    1. //Hier sollte clearbuffer(); hinkommen ist es aber nicht
    2. writebyte(42);
    3. writeint(x);
    4. writeint(y);
    5. //Hier sollte kein clearbuffer(); hin sonst wird nur face gesendet
    6. writebyte(face);
    7. sendmessage(server);

    Und das jeden Step würde immer 42 x y anhängen und alles was danach kommt einfach nicht ausgelöst wird ehnachdem wie das Empfänger Skript gestaltet ist.
    (Oder wie war das mit dem sendmessage?)
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Glow Dragon schrieb:

    writeint? ist mir neu.
    Was ist der Unterschied zwischen writeint und writeshort? :huh:


    1. writebyte(): Writes a byte of memory to the buffer. Supports values 0 to 255 (integers).
    2. writeshort(): Writes two bytes of memory to the buffer. Supports values -32512 to 32512 (integers).
    3. writeushort(): Like writeshort(), but cannot be negative. Thus, it can support values 0 to 65025 (integers). Any data type that can be negative also doubles in capacity unsigned.
    4. writeint(): Writes four bytes of memory to the buffer. Supports values -2114125312 to 2114125312 (integers).
    5. writefloat(): Writes four bytes of memory to the buffer, but it supports decimals.
    6. writedouble(): Writes eight bytes of memory to the buffer, and supports decimals. This will support any number Game Maker can.
    7. writestring(): Writes string_length+1 bytes of memory to the buffer. Supports any length of string.


    Google ist dein Freund... :pinch:

    © 2008 by Teamgrill Productions
  • Benutzer online 7

    7 Besucher