Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Merenje performansi

[es] :: Javascript i AJAX :: Merenje performansi

[ Pregleda: 1732 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Merenje performansi07.07.2008. u 16:19 - pre 192 meseci
Postoji li neki benchmark za javascript?

Imam konkretno pitanje ali me zanima i za ubuduće.
Primer:
Code:

  for(var i=0; i<rows.length; i++) {
      var TDs= rows[i].getElementsByTagName("TD"); // nađi sve ćelije
      ...
  }

Dakle ovde u svakom prolazu re-definišem promenljivu TDs.
Pitam se dali će posle završetka petlje ostati u memoriji svih 20-ak promenljivih, koliko ima prolaza, ili će re-definisanje ukloniti iz memorije stari sadržaj.

Ovo je generalno pitanje, treba li izbegavati redefinisanje u petlji i stavljati neki "var TDs=0;" pre petlje ?

I naravno, ima li neki način izmeriti zauzeće memorije iz JSa ?
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

jazzieDev
Dino Ivankov
freelancer
Beograd

Član broj: 177955
Poruke: 17
*.dynamic.sbb.rs.



Profil

icon Re: Merenje performansi12.07.2008. u 18:12 - pre 192 meseci
Za benchmarkovanje javascripta najbolje je da koristis profiler iz firebug-a. Prikazace ti koliko je koja funkcija puta bila pozvana, kao i koliko joj je trebalo vremena za izvrsavanje.

Tvoj kod ce posle petlje u TDs smestiti samo poslednji red, tj decu poslednjeg rows elementa, jer u petlji u istu promenjivu stavljas celije iz svakog reda. Znaci, nece ostati 20 promenjivih, vec ce se vrednost jedne menjati u svakoj iteraciji. Ako zelis sve celije imati u jednoj promenjivoj, to bi mogao biti dvodimenzionalni niz (zgodno zbog zadrzavanja odnosa red - celija):

Code:
var TDs = new Array();

for for(var i=0; i<rows.length; i++) {
      TDs.push(rows[i].getElementsByTagName("TD")); // nađi sve ćelije
}
// cell_4_6 = TDs[3][5]; //sheshta celija u chetwrtom redu
// cells_4 = TDs3[3]; // sve celije iz chetwrtog reda


Ako ti se u samoj petlji izvrsava sve sto treba da radis sa tim celijama, a one ti nisu potrebne posle, onda mozes i ovako kako si uradio, red po red (html tabele).

Sto se zauzeca JS memorije tice, mislim da ne moze direktno da se izmeri (nisam siguran, ispravite ako gresim). Ako te brine neki leak, onda mozes probati neki od alata za detekciju leakova (sieve, Firefox Leak Monitor, drip itd.).

 
Odgovor na temu

[es] :: Javascript i AJAX :: Merenje performansi

[ Pregleda: 1732 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.