Jump to content
Unity Insider Forum

Klassenvariable / lokale Variable - was ist besser?


feivel3333

Recommended Posts

Hallo zusammen,

generell meine ich zu wissen, wo ich Variablen deklarieren soll. Wird die Variable nur in einer Methode gebraucht, dann dort, ansonsten, wenn sie klassenintern aber methodenübergreifend gebraucht wird, oben im Kopf der Klasse.

Jetzt ist es bei mir im Kopf aber so eine Performance-Frage: Wenn ich beispielsweise in Update() eine Variable deklariere, dann wird sie jedes Mal erzeugt, wenn Update() ausgeführt wird - und das ist ja nicht selten. Je nach Geschwindigkeit pro Sekunde 50 mal und aufwärts. Sie wird erzeugt, benutzt und wieder gelöscht. Das Ganze dauert Zeit.

Nun kam mir die Idee, die Variable als Klassenvariable zu deklarieren (die heißen dort oben sicher irgendwie anders, ich meine Membervariable oder ähnlich). Egal, ihr wisst sicher, was ich meine. Die Konsequenz ist natürlich, dass die Variablen dann von jeder Methode manipuliert werden können. Das ist mir bewusst, aber wenn man beim Programmieren aufpasst, sollte da nichts passieren.

Die Frage ist: Macht das performancemäßig spürbar was aus? Sie bräuchten dann nicht bei jedem Durchlauf von Update() oder sonstigen Methoden angelegt und wieder gelöscht werden. Der interne Verwaltungsaufwand würde wegfallen.

Danke für eure Tipps schon mal im Voraus.

André

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 18 Minuten schrieb feivel3333:

Das Ganze dauert Zeit.

Wie kommst du darauf? Es ist ein Riesenfehler, einfach Annahmen über Performance zu treffen und dann zu versuchen, zu optimieren wo es nichts zu optimieren gibt. "Premature Optimization" ist ein Projektkiller. Um die Performance von lokalen Variablen brauchst du dir wirklich keine Sorgen zu machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...