Performanceverlust durch image_speed?

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

  • Performanceverlust durch image_speed?

    Mir ist aufgefallen, dass image_speed bei Objekten, in denen diese Variable nicht verändert wird, stetig ansteigt. Nach nur einer Minute beispielsweise beträgt der image_index eines Objekts bei einem room_speed von 60 bereits 3.600. Ich kann das zwar nicht wirklich beurteilen, aber meiner Ansicht nach bedeutet das bei einem Raum, in dem viele Instanzen vorhanden sind, die Sprites mit nur einem Subimage verwenden, einen gewaltigen Performanceverlust.

    Nun meine Fragen:

    1. Ist das so oder liege ich da falsch?
    2. Wie hoch wäre wohl der durchschnittliche Performancegewinn, wenn man image_speed bei Objekten, die Sprites mit nur einem Subimage verwenden, jedesmal auf 0 setzt?
    Dieser Beitrag ist Spam.
    | |
    | |
    \. ./
    \/

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von F.S. ()

  • Ich weis jetzt nicht, ob ich das richtig verstanden habe worauf du hinaus willst.

    Also... es ist wahr, dass der image_index bei normaler Geschwindigkeit pro Step um 1 erhöht wird, aber meines Wissens wird dieser bei Überschreitung der Frame-Anzahl wieder auf 0 gestellt.
    (Es wäre reichlich sinnlos von einem Sprite mit 5 Subimages das 265. aufzurufen.)

    Und falls du generell meinst, dass das Umstellen der Variable pro Step den Prozess verlangsamt, so kann ich dich beruhigen.
    Das ändern einer einzigen Variable verbraucht so wenig Arbeitsspeicher und Prozessorleistung, dass dies allenfalls auf einem durch einen Hamsterdynamo angetriebenen Rechenschieber auffallen würde (vll etwas übertrieben, aber ich denke du verstehst, was ich meine).
    Dazu müsstest du wirklich ENORM viele Instanzen im Spiel haben damit sich das irgendwie bemerkbar machen würde.

    Fazit: Wenn du wirklich hart um jedes Fitzelchen Arbeitsspeicher kämpfen musst/willst ist es sicherlich nicht kontraproduktiv, aber in 99,9% aller Fälle wäre es wie Eulen nach Athen zu tragen.

    Zumal sollte man bedenken, dass im GM sowieso einige Standardrechnungen eingebaut sind.
    Sprich: "image_index+=image_speed" wird sowieso gerechnet, unabhängig welchen Wert "image_speed" beinhaltet.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Gut, Danke für die Antworten.

    Es bringt also nicht viel, im Vornherein ins Create-Event von jedem Objekt, dass das Bild nicht wechselt, image_speed auf 0 zu setzen. Mir war das nur aufgefallen, als ich ein Projekt im Debug-Modus aufgerufen habe, mir die lokalen Variablen anschaute und merkte, dass image_index ins Unermessliche steigt, in meinem Falle war der Wert schon über 10.000. Das stach mir ins Auge und erschien mir als ziemliche Verschwendung.

    Ich sage dann einfach mal: *gelöst*.
    Dieser Beitrag ist Spam.
    | |
    | |
    \. ./
    \/
  • Die höhe des Wertes ist relativ irrelevant. Ich denke nicht, das der Wert über ca. 64000 steigen wird und so sollte der Speicherverbrauch sehr gering sein.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x