Antin blogi

Tietokonegrafiikkablogi

 

Flashin suorituskyky.

 

AS3 on sanottu olevan nopemapi kuin AS2. Se on totta, mutta AS3 ei silti tee Flashista nopeaa. Se on edelleen hidas ja jää pahasti jalkoihin vaikka Javalle. Tästä huolimatta Flash tuntuu olevan suositumpi (jumala yksin tietää miksi). No kun kerran Flashia halutaan niin koodataan sitten sitä. Ensin on kuitenkin syytä tietää missä pullonkaulat ovat.

Kokeilin ensin perus matikkakamat. Laskutoimitukset tehty 10 000 000 kertaa ja katsottu miten kauan meni. Tuloksia.

Kertolasku: 858ms
Jakolasku: 809ms
Potenssilasku: 931ms
Bittien siirto: 932ms
Miinuslasku: 821ms
Pluslasku: 817ms
Pluslasku integer: 815ms

Tulokset ovat varsin hämmentäviä ja varsinkin jakolaskun nopeus. Tämä ei vertaa mittaa toimitusten nopeutta esim. verrattuna Javaan tai C++:aan, mutta tämä kertoo mikä on hidasta ja nopeaa Flashin sisällä. Yleisesti jakolasku on hidas, mutta Flashissa se tuntuu olevan nopein. Samoin myös bittien siirto ja pontessilasku on liki samalla viivalla mikä on myös melko erikoista. Flash tekee selvästi jotain hyvin eri tavalla kuin useimmat ohjelmointikielet, mutta tämän testin valossa plus, miinus, kerto ja jakolasku ovat kaikki yhtä kalliita flashille. Bittien siirtely ei myöskään tuo lisänopeutta potenssilaskuun nähden. Erityisen harmillista koska nyt koodin optimointi on taas vähän vaikeampaa. Oikeastaan tämän testin valossa pitäisi suosia jakolaskua, joka kuulostaa hyvin väärältä, mutta siltä se vaikuttaisi :).

Sanotaan selvyyden ja pahan olon vuoksi, että kertolasku testi kestää C#:lla 16ms ja Flashilla siis 858ms. Eli C# on tässä noin 53 kertaa nopeampi. Voisi tuon perusteella sanoa, että esim. peli joka pyörii 20fps flashilla pyörisi noin 1060fps C#:lla. Ei ole yhtään kivaa, että Flash on niin suosittu :(.

Nopeuksia ehtolauseiden käytöstä. Tässä sama juttu kuin yllä eli operaatiot on tehty 10 000 000 kertaa ja mitattu niiden viemä aika.

1 kierron mittainen for lause: 905ms
If lause: 822ms
Switch/Case lause: 1271ms

Dynaaminen muistin varaus. Mitattu samalla tavalla kuin aikaisemminkin.

2 muuttujan luominen: 1199ms
2 muuttujan arvon vaihtaminen: 1193ms
Luokan luominen, jossa 2 muuttujaa: 9586ms

Tässä kohtaa on erityisen tärkeää huomata, että luokan luonti on todella runsaasti hitaampaa. Eli jos olet ajatellut tehdä vaikka XY luokan, jota käytät joka pikselissä niin se on todella huono idea :). Kannattaa enemmin tehdä kaksi muuttujaa X ja Y. Eli vältä pieniä luokkia aina kun se on mahdollista. Ei kuitenkaan kannata mennä liiallisuuksiin ja tehdä koodista epäselvää vain siksi, että yrittää välttää luokkia. Muuttujan luomisella tai muuttujan arvon asettamisella ei tunnu olevan juuri eroja.

Responses (28) to "Flashin suorituskyky."

  1.  

    gr9Prn bhcvcknaucyk, rkiplrstywcz, rlzimqdymznk, http://zoejtsclzwep.com/

  2.  
  3.  

    Side effects include nausea constipation and a risk of addiction. buy tramadol 08622 order tramadol wpmt acomplia >:-)))

  4.  

    phentermine 50231

  5.  

    TuO71k lwlsxycibgif, tzwoqajogoxf, xpvyxflhdexa, http://stmgsryyorfl.com/

  6.  
  7.  

    soma 8) accutane :-PPP viagra dwjxku auto insurance xsgdc

  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  

    pJSOhx rgiofqnuhgcq, hbsazdscgiem, mepsgyctothb, http://bdaoxahxmowp.com/

  19.  
  20.  
  21.  
  22.  

    propecia xzqcxt ambien :-OO accutane kxp ultram :O buy phentermine gcj ultram =-DD

  23.  
  24.  
  25.  
  26.  

    Many of folks blog about this subject but you wrote down some true words!!

  27.  

    я думаю: мне понравилось.. а82ч

  28.  

    mm.. thank you for this thoughts )

Leave a reply

Comments are disabled for this post.