Autor Zpráva
habendorf
Profil
Zkusil jsem si udělat malý testík rychlosti zpracování JS v různých browserech - a výsledek mi tak trochu vyrazil dech.
Zkuste sami - http://www.brs.cz/pokusy/js-grafy.html

Na mém počítači (doma mám docela šunku) - průměrné hodnoty:

IE - 320ms
FF - 1960ms (!)
Opera - 5380ms (!!!)

Takové rozdíly jsem tedy nečekal...
Uvítám vaše postřehy, jestli budete mít taky takové rozdíly.
marek_sk
Profil *
Zajímavé, to bych nečekal. Mám ještě větší šunku, ale poměr IE a FF je stejný, Opera netestována. I když je otázkou, co má ten testík vlastně dokázat.

Sám jsem dělal malou JavaScriptovou aplikaci, měnící již vykreslený dokument. Časy jsem neměřil, ale FF a Opera byly hotovy ihned, zatímco IE to trvalo zlomky vteřiny až vteřinu i na velmi dobrém hw.
habendorf
Profil
I když je otázkou, co má ten testík vlastně dokázat.
Nic, byl to jen pokus. Možná že při jiné metodě by výsledky byly úplně jiné.
Ten skript v cyklu vypočítává hodnoty sin (x) a cos (x) a následně je pomocí position:absolut vykresluje do grafu. Než se rozběhne cyklus, spustí se stopky a po kompletním vykreslení se stopky zastaví. Viz kód.
thingwath
Profil
Není to spíš test té grafiky? Což tak jenom nějaké počítání? (nerozumím JS)
Fred
Profil
Je to jenom počítání.
Radek Hrabůvka
Profil
Jednoduché počítání
<script>
a=0
for (i=1; i <= 1000000; i++)
a=a+i
document.write(a)
</script>
Sčítá 1+2+3....+1000000
Výsledek vypíše na konci, kdo to chce zkoušet na slabší mašině, může počítat součet do nižšího čísla. V JS se moc nevyznám, nedokážu tam zabudovat stopky, ale krom starce Netscape 4.7 byly výsledky prohlížečů srovnatelné.

Náročnější počítání:
Zkusil jsem nechat vypočítat a sčítat sinus, opět srovnatelné výsledky v běžných prohlížečích.
<script>
a=0
for (i=1; i <= 500000; i++)
{
with (Math) {a=sin(i)
}
a=a+a
}
document.write(a)
</script>

Ve výše uvedeném příkladu zcela jistě brzdí vykreslování sinusoidy. Jen to dokazuje, že různé věci trvají prohlížečům různou dobu.
Leo
Profil
On se kazdy kod da optimalizovat, a to ruzne pro ruzne prohlizece, ale je fakt, ze co se tyka podobnych konstrukci tak jsem u Opery vzdycky narazil na pomalost... Leo
habendorf
Profil
Tak jsem tam ještě včera dodělal to počítání, teď jsem to tam uploadnul.
Zajímavé je, že jsem prvně počítal 170! (faktoriál), ale ten to počítalo neuvěřitelně rychle. Takže sčítám od 1 do 500.000.
Sedím teď na notebooku, ten je rychlejší, výsledky jsou v průměru (graf, součet):

IE - 120ms, 510ms
FF - 330ms, 1230ms
Opera - 970ms, 670ms
Leo
Profil
Vypocty behaji rychle, co nejvic zdrzuje je vykreslovani a prace s objekty documentu, Leo
peta
Profil *
habendorf
OffTopic tam vubec nevadi :)))

Jenze mi ten tvuj upraveny script trva ve FF 235
www.volny.cz/peter.mlich/Pr/efekty/grafy.htm
Podle toho tu nahore jsem pochopil, zes to srovnaval v IE.
Jediny velky rozdil byl v tom, ze:
- deklaroval jsem vsechny promenny na zacatku:
var start,stop1,stop2,osaX,sinusoida,cosinusoida,tangentoida, x,a,b,c,d;
- pouzil jsem pricitani do promenne misto toho, abych zatezoval prohlizec vypisovanim document.write() v kazdem cyklu

Ten script nech, dam to do czilly :)
peta
Profil *
habendorf jo, a totez v opere, ten cas.
peta
Profil *
habendorf
Jo, jeste sem tam dal pouze 450 misto 750 ten cyklus, ale to si muzes snadno zmenit. Dulezity je ten cas, ten je stejny.
peta
Profil *
Radek Hrabůvka
mam na webce testy sorting, kde zkousim ruzny algoritmy. dost se tam projevuje deklarovani promennych, zrejme se to brzdi pri pretypovavani.
Fred
Profil
habendorf To fakt záleží na scriptu, v DOMU je nejpomalejší můj favorit Firefox zkus: http://xy.wz.cz/cas.htm
Na lokále to vypadá u mně takhle:
FF 1.0.4 94ms
FB 0.7 93ms
IE 6 31ms
IE 5 47ms
IE 5.5 94ms
IE 7 78ms
K-meleon 0.7 78ms
K-meleon 0.9 94ms
Op 7.23 78ms
Op 7.5 63ms
Op 8 15ms vítěz testu (bylo nutné upravit styl neumí malá procenta width:0.390625%;} /*100/256=0.390625*/)
Deer park Alpha 2 (ff 1.6a1) 109ms
habendorf
Profil
Fred: jo, to je jasný že záleží na konkrétním skriptu. Já ani nechtěl rozdmýchat bouřlivé debaty o kvalitě browserů. Začlo to tak, že jsem zkusil vykreslit graf. Pak jsem si všiml, že se Opera hrozně vleče, tak jsem tam dodělal ty stopky. A protože mě výsledky dost překvapily, tak jsem je zde zveřejnil.

Tvůj skript z webu (ale IMHO je jedno jestli z webu nebo z lokálu, je to přece JS):
IE 6: 50ms
FF 1.06: 50 - 60ms
Opera 8.02: - 20ms
habendorf
Profil
Palm Tungsten T5, prohlížeč Blazer

výpočet součtu: 186.880ms, tedy >3minuty :o)
peta
Profil *
habendorf
sem to nasel, ten odkaz :)
http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm
Leo
Profil
186.880 je 180 tisic nebo 180,880? Leo
halogan
Profil
Podle dodanych tri minut do bude 180 tisic
Fred
Profil
habendorf Tak jsem udělal to Tvoje přes DOM, rychlost je u mě obrácená. http://xy.wz.cz/testik.html
Nejdřív jsem se spletl a tvořil v tom druhém spanu písmeno o místo . a rychlost byla o dost vyšší což vůbec nechápu.

Opera 8 562ms
Firebird 1875ms
Firefox 1750ms
IE6 2578ms
IE7 2813ms
peta
Profil *
Fred
Taky to mam v JS DOM
http://www.volny.cz/peter.mlich/Pr/efekty/grafy2.htm
FF 1.06 2800 ms
Deep park 1.0 3500ms (to je nejaka odnoz FF)
IE 6.0 600ms
Opera 8.0 250-400 ms

JS
www.volny.cz/peter.mlich/Pr/efekty/grafy1.htm
FF 350 ms
DP 350 ms
IE 250 ms
O 350 ms

Jeste to prevedu zpatky na document.write :)
peta
Profil *
Localhost - 2nd refresh AMD Sempron 1,68 GHz (2400+), delka 650

www.volny.cz/peter.mlich/Pr/efekty/grafy0.htm Nx document.write
IE 6.0 170 ms
FF 1.06 1900 ms
Deep Park A (FFx) 350 ms
Opera 8.0 6000 ms

www.volny.cz/peter.mlich/Pr/efekty/grafy1.htm 1x document.write
IE 6.0 550 ms
FF 1.06 270 ms
Deep Park A (FFx) 250 ms
Opera 8.0 550 ms

www.volny.cz/peter.mlich/Pr/efekty/grafy2.htm DOM
IE 6.0 200 ms
FF 1.06 2000 ms
Deep Park A (FFx) 2000 ms
Opera 8.0 400 ms

Cimz opravuji zkreslene udaje pro Deep park, mi otevrel FF a to jeste zahadnym zpusobem s DP casti.
A tamty hodnoty byli z inetu.

Jeste zkusim jednu vezri DOMu
habendorf
Profil
Leo: 180 tisíc, už jsem myslel že palm zkolaboval, po třech minutách celej udejchanej vyplivnul výsledek.

Fred: Tak to je zajímavé, u mě ten tvůj skript vede jasně s převahou Opera, pak FF, pak IE - celkově je ale ten skript mnohem pomalejší. Přitom Opera u tebe úplně propadla (?). Mám Operu 8.02
Nejdřív jsem se spletl a tvořil v tom druhém spanu písmeno o místo . a rychlost byla o dost vyšší což vůbec nechápu.
No já bych čekal že bude stejná, nebo že tečka bude rychlejší - taky mě to překvapuje.

peta: Ten odkaz na walterzorn je sice zajímavej, ale souvislosti moc nechápu.

Koukám že sinusovky zaplavily web :o)
Zkrátka je vidět, že co browser to lepší/horší algoritmus v některé oblasti, v jiné oblasti je to jinak. Asi se obecně nedá říci, že interpretace JS je někde rychlejší a někde pomalejší.
peta
Profil *
habendorf :)))
Na czille to pawell vysvetluje, ze by to mohlo souviset s pozicovanim. Jeste zkusim par variant, treba apendovani provest naraz cyklem a vytvorit si tam pole prvku

S tim pismenem jsem to nezkousel, to jako fakt, jo? To bych umrel smichy :) To jeste zkusim, nez pujdu na nejaky film :)
peta
Profil *
habendorf Zkousel jsem to jenom ve FF a chova se mi to s pismeny stejne. Ale ja tam taky pomoci CSS definuji verdanu a vysku. Pokud pouzije prohlizec pixelove pismo, pak to muze byt vskutku rychlejsi, viz IE (mozna je to proto)
peta
Profil *
dopustil jsem se chybky pri zapisu:

1x document.write
IE 6.0 200 ms

DOM
IE 6.0 550 ms
peta
Profil *
habendorf ten odkaz, to je odkaz na grafickou knihovnu, ze kdyz te to tak zajima, muzes se podivat tam, jak to resi :) Nevim, kdo mi to uz dal, ale je to pekny, jak jsi rekl. :) Nic vic :)
Fred
Profil
habendorf To jsi se překouknul, vyšlo mi to stejně, a document.write na potvoru rychlejší, to snad ani radši neříkat nahlas.
Opera 8 - 562ms
Firebird - 1875ms
Firefox - 1750ms
IE6 - 2578ms
IE7 - 2813ms
habendorf
Profil
Fred: Ups - já to četl jako Opera: 8562ms, ne jako Opera 8: 562ms :o)). Jo, bylo mi to divný.
Fred
Profil
To jsem si myslel, zapoměl jsem, že diskuse odstraňuje mezery :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0