boyne.developing

the developing blog of Johannes Boyne. A blog about flash, flex and air

Code Optimierung!

mit 2 Kommentaren

Zum neuen Jahr, macht sich jeder ein paar wenige Gedanken, was er besser machen könnte. In Sachen Entwicklug werde ich etwas mehr auf Code Optimierung achten, also hier mal was zu beachten ist:

Code Optimierung ist besonders bei “großen” Applikationen ein wichtiges Thema, da sehr viel Code verarbeitet werden muss. Eins ist jedoch zu beachten, es muss ein Mittelweg gefunden werden zwischen performantem Code und lesbaren Code!

8 Code Optimierungs Tipps:

  • Variablen mit Typen Deklarieren
    • Bsp.: private var _diesIstEinString:String;
  • nicht die Funktion Array.length(); in einer Schleife oder in Schleifen Headern verwenden
  • vermeiden von mehreren Array lookups
  • Integer (int) für Counter und Array lookups verwenden
  • Number für mathematische Operationen verwenden (hierbei ist manchmal ein Integer schneller aber generell ist es rein nummerisch besser)
  • es ist performanter Variablen aufeinmal zu deklarieren!
  • multiplikationen sind schneller als divisionen!
  • auf Variablen direkt zugreifen ist performanter als mit getter oder setter Funktionen sich zugriff zu verschaffen

beachtet man diese Tipps kann eine nicht performante Schleife:

for(var i = 0; i < arrayOne.length; i++){
if(
arrayOne[i].enabled()){
        arrayOne[i].getX() = arrayTwo[i].getX()/2;
        arrayOne[i].getY() = arrayTwo[i].getY()/2;
        arrayOne[i].getZ() = arrayTwo[i].getZ()/2;
}
}


zu einer performanten Schleife umwandeln:

var length:int = arrayOne.length, i:int=0;
for(;
i < length; i++){
    objectOne:SomeObject = arrayOne[i];
    objectTwo:SomeObject = arrayTwo[i];
if(
objectOne._enabled){
        objectOne._x = objectTwo._x*0.5;
        objectOne._y = objectTwo._y*0.5;
        objectOne._z = objectTwo._z*0.5;
}
}

Wenn man Eclipse und FDT als Entwicklungsumgebung verwendet, kann man sich sogar sehr leicht sog. templates für soetwas erstellen:“Window->Preferences->FDT->Editor->Templates”:

var length:int = ${array}.length, ${integer}:int=0;
for(;
${integer} < length; ${integer}++)
{
    ${cursor}
}

Ein Frohes neus,

g²,

Johannes

Written by spino

Januar 1, 2008 um 6:30

2 Antworten

Subscribe to comments with RSS.

  1. Hey Johannes,

    danke fuer die Tips. I know I know, kommt ein bischen spaet diese Kommentar, aber ich habs echt versaeumt deinen Blog zu lesen.

    Ich glaube ich kann da mit einigen deiner Tips schon noch was machen an meiner Applikation. Da ich , wie ich festellen musste, doch sehr viele Schleifen habe die ArrayCollection.length oder Array.length verwenden.

    Ich werde mich dann mal zum CodeReview aufmachen.

    btw, ich habe darkdexter.de wieder aktiviert und hoffe das ich endlich mal dazu komme doch ein bischen mehr Inhalt bereitzustellen.
    vielleicht schaffe ich es auch endlich mal meine Wunsch Domain zu reservieren.

    mfg
    Carsten

    Carsten

    April 4, 2008 um 11:17

  2. Super das die Tipps jemandem helfen ;) wenn Du noch Beratung in Projekten möchtest dann Rent-a-Pro :D

    spino

    April 4, 2008 um 4:15


Einen Kommentar schreiben