28/10/2007Optymalizacja ActionScript 3.0

Pierwszy w Europie Adobe MAX, w którym miałem szczęście uczestniczyć, za nami. W trakcie sympozjum (konferencji?) wziąłem udział w kilku sesjach, które traktowały o optymalizacji ActionScript 3.0. Poniżej postaram się wymienić najważniejsze sposoby. Duża część z nich odbiega od przyjętych standardów programowania i często może zmniejszyć przejrzystość kodu. Dlatego warto je stosować tylko wtedy, gdy zależy nam na maksymalnej wydajności.

  • minimalizujemy liczbę obiektów, efektów i animacji na ekranie
  • usuwamy obiekty z listy wyświetlania zamiast robić je niewidocznymi
  • wyrzucamy co się da przed pętlę
  • przed wejściem w pętlę przypisujemy obliczane w pętli wartości do zmiennych
    np. zamiast:
    for(var i:int=0 ; i<myArray.length ; i++)
    {
    //some code…
    }
    piszemy:
    var len:int = myArray.length;
    for(var i:int=0 ; i<len ; i++)
    {
    //some code…
    }
  • bezwzględnie używamy strong typing
  • usuwamy z kodu wszystkie trace lub w opcjach publikacji włączamy omit trace actions
  • unikamy porównywania różnych typów danych
  • zamiast funkcji getter / setter używamy zmiennych typu public
  • w pętlach zamiast i++ używamy i+=1 (tak, dla mnie to też był szok :) )
  • stosujemy pętle for each zamiast for in
  • stosujemy “”+k zamiast k.toString()
  • tworzymy tablice poprzez k = [1,2,3] zamiast k = new Array(1,2,3)
  • stosujemy optymalne algorytmy (to raczej oczywiste)
  • staramy się używać typu int zamiast Number (zwłaszcza jako wskaźnika do tablic lub pętli)
  • nie piszemy długich funkcji, gdyż flash player ma wtedy problem z alokacją rejestrów
  • jeżeli tylko się da, używamy operacji logicznych zamiast arytmetycznych
    np. zamiast:
    var mutiplyResult:int = anAge * 8;
    piszemy:
    var mutiplyResult:int = anAge << 3;

Tutaj znajdziecie prezentację oraz przykłady, których autorem jest Cedric Tabin, prowadzący sesję Optimizing ActionScript 3 performance na Adobe MAX Barcelona. W dużej mierze opierałem się właśnie na nich.

dodajdo

  1. 1 Tworzenie Stron 14/03/2008

    Całkiem ciekawe:) Przetestujemy:D Dziex!

  2. 2 frk 09/10/2008

    Zawsze mnie wkurzały gettery i settery, argumenty zabezpieczaniu zmiennych przed nieporządanymi działaniami wogóle do mnie nie trafiały (albo wiesz co robisz albo nie), a teraz jak jeszcze sie dowiedziałem że są nie optymalne - przyrzekam bede dziadostwa unikał jak ognia :)

Zostaw komentarz