Teljesítménymérés
Helló guruk!
JavaScript-es fejlesztéssel kapcsolatban lenne egy kérdésem:
Egy olyan alkalmazást keresek ami pluginként vagy külön alkalmazásként, tudja mérni egy adott oldalon azt, hogy a JS feldolgozó egység mennyi memóriát emészt fel munka közben/után(szemét, closure, stb), illetve menyi idő alatt fut le, és mekkora processzor terhelést generál ez mellé. Létezik ilyen, amivel az összes böngészőn tudok egy tesztet csinálni?
■ JavaScript-es fejlesztéssel kapcsolatban lenne egy kérdésem:
Egy olyan alkalmazást keresek ami pluginként vagy külön alkalmazásként, tudja mérni egy adott oldalon azt, hogy a JS feldolgozó egység mennyi memóriát emészt fel munka közben/után(szemét, closure, stb), illetve menyi idő alatt fut le, és mekkora processzor terhelést generál ez mellé. Létezik ilyen, amivel az összes böngészőn tudok egy tesztet csinálni?
nem hiszem
profiler
nem tudtam angolul
Sajnos itt én is elakadtam,
Mondjuk nem is tiszta teljesen, hogy mit is akarsz a memóriával, mert - amennyire tudom - a JS szemétgyűjtője még annyira sem hozzáférhető, mint a java-é, egyéb módon meg nem nagyon tudod befolyásolni a memóriahasználatot (hacsak nem használsz dinamikusan növekvő tömböket), szóval sok értelmét én nem látom. Persze ez lehet, hogy csak a tudatlanságom miatt van.
példa
Probléma
Donald Knuth - Structured Programming with go to Statements
Majd ha észleled, hogy huzamosabb használat után elkezd valahol szivárogni a memória, na akkor érdemes rá odafigyelni. Azt pedig, hogy melyik gyorsabb, elég egyszerűen le lehet mérni, van rá számos eszköz, például a jsPerf.
Azért ez mégiscsak
Egyébként üzemeltetői oldalról én kicsit másképp láttam a dolgot. Mert ennek az optimalizálás nélküli fejlesztésnek(*) általában az volt a következménye, hogy ott a rendszergazda/DBA, csináljon valamit! És általában az derült ki, hogy a mi oldalunkon esélytelen, a programot kell...
* - igen, tudom, hogy ez nem arról szól, hogy optimalizálatlan programot adj ki a kezedből, de a vége többnyire az volt, hogy fontosabb volt minden más, végül a határidők miatt az optimalizációt kiváltották az erősebb hardverrel...
"Azért ez mégiscsak
Ezt azert ne hireszteld ebbe a formaba... Nem szallok vitaba de ennyit mondok... kulcsszavak: "extjs4 mvc"
*de az allitas fele mindenesetre igaz, nehez tema :)
Jó, végülis a JS egy
de imadom :D:D:D a maga kis
Megeloztel a picsaba :D
A memoria hasznalata
for in-t nem hasznalunk... mivel sokkal lassubb mint while ... a while pedig lasubb mint a sima for...
De az otlet jo :)
for in-t nem indexértékek
http://jsperf.com/for-in-vs-f
forEach ott ahol tamogatva van/ gracefull fallback kell for in-re :)
Most vagy én vagyok tök
Elnezest a felrevezetesert,
Megmutatom hogy lehet 90%os sebessegnovekedest is elerni:
Csinaltam egy kis sebessegtesztet -> Asszociativ tomb kezeles mas modon :) (persze a(z) objektumot/tombot maskepp kell osszeallitani)
http://jsperf.com/forin-vs-for
(Ez csak egy elmeleti pelda a for in tokeletes a te peldadban... csak hogy lasd hogy a for in mennyire rosszul van megirva :/ , mert ugye atirni mindent nagyon nagyon sok lenne kodban is es sajnos ilyenkor merlegelni kell :) )
Chrome alatt
A Feladatkezelővel figyelheted a memóriát, mind a fül által összesen, mind pusztán a JavaScript által használt memóriát. Remélem nem fogsz meglepődni, amikor megnézel egy Google Docs oldalt, és megnézed mennyi memóriát eszik csak JavaScript-ből.
A Fejlesztői eszközök rengeteg eszközt nyújt a teljesítmény mérésére, bár ez inkább klasszikus értelemben vett profiler feladatokat lát el, memóriáról nem szól.
A Speed Tracer pedig egy, a Fejlesztői eszközöknél átfogóbb profiler, igazából mutatja, a futás során mi történt, és az mennyi ideig tartott.
Internet Explorer alatt az F12 fejlesztői eszközök alatt férsz hozzá profiler adatokhoz, de ez szintén nem ad semmilyen képet a memóriáról, csak a futási időkről. Ugyanez a helyzet a Firefox-os Firebug esetén is.
Ez a Speed Tracer jónak