Test prohlížečů II

Již delší dobu je na světě kompletní verze Acid 3 testu a narazil jsem na další zajímavý test, který je zaměřen na výkon (rychlost) JavaScript interpretru. Proto jsem se rozhodl podrobit Nejnovější beta verze prohlížečů, které se mi dostali pod ruky. Tentokrát jsem se nezaměřil pouze na Firefox a Operu, ale zkoušel jsem i Internet Explorer. Zkoušel jsem také stabilní verze. Z testů je tedy vidět, jak vývojáři pokročili od aktuální stabilní verze k nynější beta verzi.

Pro testy jsem použil ACID 3 test, pro verze, které ani v beta verzi (IE 8) neprošli ACID 2 testem také 2. verzi Acid testu. CSS 3 selector test a oproti dřívějšímu testu také SunSpider JavaScript Benchmark 0.9

Přesto, že IE 8 neprošel ani ACID 2 testem (jak Microsoft propagoval), je vidět, že na osmičce zapracovali a již je vše takřka v pořádku (viz. níže). V sedmé verzi se to ani nedalo považovat za smajlíka. V aktuální beta je na tom mnohem lépe nejen v ACID testu, ale mnohem rychleji zpracovává JavaScriptový kód.

FF 3.0 beta 5 (build 2008031804)

CSS 3:
Ze 43 selektorů 36 prošlo, 0 se choval chybně 7 nepodporovaných (prošlo 373 z 578 testů)
ACID 3:
71/100
JS benchmark:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                  4568.4ms +/- 4.0%
--------------------------------------------
  3d:                    552.4ms +/- 7.9%
    cube:                200.4ms +/- 8.4%
    morph:               176.8ms +/- 14.6%
    raytrace:            175.2ms +/- 3.3%
  access:                652.2ms +/- 10.0%
    binary-trees:         89.2ms +/- 70.6%
    fannkuch:            236.0ms +/- 3.7%
    nbody:               231.8ms +/- 23.7%
    nsieve:               95.2ms +/- 9.3%
  bitops:                431.0ms +/- 8.1%
    3bit-bits-in-byte:    75.0ms +/- 12.7%
    bits-in-byte:        106.0ms +/- 13.9%
    bitwise-and:         111.0ms +/- 12.8%
    nsieve-bits:         139.0ms +/- 13.6%
  controlflow:            55.2ms +/- 12.7%
    recursive:            55.2ms +/- 12.7%
  crypto:                269.6ms +/- 12.7%
    aes:                  98.0ms +/- 5.5%
    md5:                  82.2ms +/- 16.2%
    sha1:                 89.4ms +/- 20.0%
  date:                  540.0ms +/- 2.1%
    format-tofte:        336.2ms +/- 3.3%
    format-xparb:        203.8ms +/- 4.3%
  math:                  518.8ms +/- 5.0%
    cordic:              208.0ms +/- 1.9%
    partial-sums:        216.8ms +/- 8.2%
    spectral-norm:        94.0ms +/- 8.2%
  regexp:                361.8ms +/- 8.1%
    dna:                 361.8ms +/- 8.1%
  string:               1187.4ms +/- 7.0%
    base64:              122.2ms +/- 5.9%
    fasta:               269.4ms +/- 12.7%
    tagcloud:            233.2ms +/- 6.4%
    unpack-code:         401.8ms +/- 6.6%
    validate-input:      160.8ms +/- 17.1%

Opera 9.50 beta 2 (build 1834)

CSS 3:
Ze 43 selektorů 43 prošlo, 0 se choval chybně 0 nepodporovaných (prošlo 578 z 578 testů)
ACID 3:
65/100
JS benchmark:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                  8604.4ms +/- 20.6%
--------------------------------------------

  3d:                    785.0ms +/- 16.7%
    cube:                238.2ms +/- 22.6%
    morph:               324.2ms +/- 16.1%
    raytrace:            222.6ms +/- 21.4%

  access:               1135.8ms +/- 18.5%
    binary-trees:        149.6ms +/- 64.7%
    fannkuch:            515.2ms +/- 12.8%
    nbody:               223.6ms +/- 4.4%
    nsieve:              247.4ms +/- 21.5%

  bitops:               1109.0ms +/- 3.1%
    3bit-bits-in-byte:   108.2ms +/- 14.0%
    bits-in-byte:        159.8ms +/- 9.7%
    bitwise-and:         534.0ms +/- 5.4%
    nsieve-bits:         307.0ms +/- 8.1%

  controlflow:            94.6ms +/- 7.0%
    recursive:            94.6ms +/- 7.0%

  crypto:                493.6ms +/- 23.8%
    aes:                 230.2ms +/- 20.6%
    md5:                 135.6ms +/- 24.4%
    sha1:                127.8ms +/- 32.1%

  date:                  574.8ms +/- 12.7%
    format-tofte:        275.8ms +/- 7.6%
    format-xparb:        299.0ms +/- 18.1%

  math:                  627.8ms +/- 6.6%
    cordic:              262.2ms +/- 7.1%
    partial-sums:        254.0ms +/- 11.1%
    spectral-norm:       111.6ms +/- 9.3%

  regexp:                691.4ms +/- 4.1%
    dna:                 691.4ms +/- 4.1%

  string:               3092.4ms +/- 45.2%
    base64:              297.4ms +/- 90.5%
    fasta:               653.2ms +/- 77.0%
    tagcloud:            400.8ms +/- 31.3%
    unpack-code:        1526.8ms +/- 27.1%
    validate-input:      214.2ms +/- 43.8%

Internet Explorer 8

CSS 3:
Ze 43 selektorů 14 prošlo, 4 se chovaly chybně 25 nepodporovaných (prošlo 335 z 578 testů)
ACID 2:
neprošel
ACID 3:
18/100
JS benchmark:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 15721.8ms +/- 14.4%
--------------------------------------------
  3d:                   1875.2ms +/- 35.6%
    cube:                723.2ms +/- 66.0%
    morph:               406.0ms +/- 19.2%
    raytrace:            746.0ms +/- 15.1%
  access:               2216.8ms +/- 17.3%
    binary-trees:        476.6ms +/- 5.3%
    fannkuch:            844.6ms +/- 5.3%
    nbody:               569.6ms +/- 23.9%
    nsieve:              326.0ms +/- 54.8%
  bitops:               1721.6ms +/- 44.2%
    3bit-bits-in-byte:   289.0ms +/- 44.3%
    bits-in-byte:        386.2ms +/- 63.0%
    bitwise-and:         679.2ms +/- 41.1%
    nsieve-bits:         367.2ms +/- 30.1%
  controlflow:           347.8ms +/- 7.9%
    recursive:           347.8ms +/- 7.9%
  crypto:               1017.0ms +/- 17.5%
    aes:                 471.6ms +/- 30.3%
    md5:                 276.2ms +/- 5.2%
    sha1:                269.2ms +/- 11.4%
  date:                 1542.8ms +/- 9.1%
    format-tofte:        730.0ms +/- 4.1%
    format-xparb:        812.8ms +/- 14.1%
  math:                 1470.6ms +/- 5.2%
    cordic:              552.0ms +/- 1.5%
    partial-sums:        363.4ms +/- 8.7%
    spectral-norm:       555.2ms +/- 6.9%
  regexp:                492.8ms +/- 1.9%
    dna:                 492.8ms +/- 1.9%
  string:               5037.2ms +/- 1.0%
    base64:             2447.4ms +/- 1.0%
    fasta:               726.6ms +/- 2.0%
    tagcloud:            578.2ms +/- 5.5%
    unpack-code:         643.2ms +/- 2.2%
    validate-input:      641.8ms +/- 3.3%

FF 2.0.0.12

CSS 3:
Ze 43 selektorů 26 prošlo, 10 se chovalo chybně 7 nepodporovaných (prošlo 357 z 578 testů)
ACID 2:
neprošel
ACID 3:
51/100
JS benchmark:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 21665.4ms +/- 1.4%
--------------------------------------------
  3d:                   3151.0ms +/- 7.1%
    cube:                889.0ms +/- 16.3%
    morph:              1750.2ms +/- 2.6%
    raytrace:            511.8ms +/- 11.9%
  access:               1889.0ms +/- 9.3%
    binary-trees:        293.2ms +/- 12.3%
    fannkuch:            404.6ms +/- 7.7%
    nbody:               906.8ms +/- 21.5%
    nsieve:              284.4ms +/- 5.3%
  bitops:               5150.0ms +/- 2.5%
    3bit-bits-in-byte:   407.8ms +/- 7.7%
    bits-in-byte:        346.6ms +/- 7.5%
    bitwise-and:        4042.2ms +/- 4.5%
    nsieve-bits:         353.4ms +/- 12.5%
  controlflow:           224.6ms +/- 10.2%
    recursive:           224.6ms +/- 10.2%
  crypto:                911.6ms +/- 4.6%
    aes:                 307.4ms +/- 7.4%
    md5:                 312.6ms +/- 9.5%
    sha1:                291.6ms +/- 16.0%
  date:                 4020.4ms +/- 4.7%
    format-tofte:       1784.6ms +/- 5.4%
    format-xparb:       2235.8ms +/- 4.4%
  math:                 1714.4ms +/- 10.9%
    cordic:              661.2ms +/- 14.8%
    partial-sums:        704.6ms +/- 9.9%
    spectral-norm:       348.6ms +/- 10.0%
  regexp:                854.0ms +/- 5.0%
    dna:                 854.0ms +/- 5.0%
  string:               3750.4ms +/- 2.6%
    base64:              965.6ms +/- 7.0%
    fasta:               721.0ms +/- 7.0%
    tagcloud:            619.4ms +/- 5.0%
    unpack-code:        1076.4ms +/- 5.8%
    validate-input:      368.0ms +/- 11.0%

Opera 9.26 (build 698)

CSS 3:
Ze 43 selektorů 26 prošlo, 2 se chovaly chybně 15 nepodporovaných (prošlo 347 z 578 testů)
ACID 3:
46/100
JS benchmark:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                     NaNms +/- NaN%
--------------------------------------------

  3d:                    995.2ms +/- 9.9%
    cube:                312.2ms +/- 5.3%
    morph:               395.4ms +/- 13.3%
    raytrace:            287.6ms +/- 14.0%

  access:               1856.0ms +/- 18.5%
    binary-trees:        198.6ms +/- 33.7%
    fannkuch:            923.4ms +/- 18.7%
    nbody:               370.0ms +/- 60.2%
    nsieve:              364.0ms +/- 9.8%

  bitops:               1769.6ms +/- 12.9%
    3bit-bits-in-byte:   240.2ms +/- 12.8%
    bits-in-byte:        433.0ms +/- 17.9%
    bitwise-and:         576.2ms +/- 12.5%
    nsieve-bits:         520.2ms +/- 19.7%

  controlflow:           272.2ms +/- 41.0%
    recursive:           272.2ms +/- 41.0%

  crypto:                  NaNms +/- NaN%
    aes:                 320.4ms +/- 6.6%
    md5:                   NaNms +/- NaN%
    sha1:                259.4ms +/- 40.5%

  date:                  332.8ms +/- 28.1%
    format-tofte:          0.0ms +/- -NaN%
    format-xparb:        332.8ms +/- 28.1%

  math:                  545.6ms +/- 12.6%
    cordic:                0.0ms +/- -NaN%
    partial-sums:        330.2ms +/- 18.8%
    spectral-norm:       215.4ms +/- 7.6%

  regexp:                  0.0ms +/- -NaN%
    dna:                   0.0ms +/- -NaN%

  string:               3469.6ms +/- 4.8%
    base64:              354.6ms +/- 19.2%
    fasta:               999.8ms +/- 8.0%
    tagcloud:            593.4ms +/- 7.2%
    unpack-code:        1207.0ms +/- 12.2%
    validate-input:      314.8ms +/- 16.7%

Internet Explorer 7

CSS 3:
Ze 43 selektorů 13 prošlo, 4 se chovaly chybně 26 nepodporovaných (prošlo 330 z 578 testů)
ACID 2:
neprošel
ACID 3:
12/100
JS benchmark:
 ============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                  90479.8ms +/- 7.2%
--------------------------------------------
  3d:                    2733.8ms +/- 11.5%
    cube:                 687.2ms +/- 13.0%
    morph:                797.4ms +/- 16.5%
    raytrace:            1249.2ms +/- 13.7%
  access:                3519.8ms +/- 22.2%
    binary-trees:         754.2ms +/- 4.9%
    fannkuch:            1216.0ms +/- 11.1%
    nbody:                790.8ms +/- 34.3%
    nsieve:               758.8ms +/- 55.9%
  bitops:                3159.6ms +/- 25.7%
    3bit-bits-in-byte:    917.2ms +/- 61.3%
    bits-in-byte:         799.6ms +/- 24.2%
    bitwise-and:          736.8ms +/- 13.5%
    nsieve-bits:          706.0ms +/- 21.5%
  controlflow:            815.8ms +/- 7.6%
    recursive:            815.8ms +/- 7.6%
  crypto:                1966.4ms +/- 22.1%
    aes:                  658.0ms +/- 7.6%
    md5:                  586.2ms +/- 27.2%
    sha1:                 722.2ms +/- 45.6%
  date:                  1941.2ms +/- 29.9%
    format-tofte:         914.4ms +/- 30.6%
    format-xparb:        1026.8ms +/- 29.2%
  math:                  2470.2ms +/- 23.2%
    cordic:               989.8ms +/- 36.0%
    partial-sums:         515.0ms +/- 10.7%
    spectral-norm:        965.4ms +/- 19.7%
  regexp:                 496.6ms +/- 10.3%
    dna:                  496.6ms +/- 10.3%
  string:               73376.4ms +/- 7.3%
    base64:             50344.6ms +/- 9.4%
    fasta:                972.0ms +/- 5.3%
    tagcloud:            7496.4ms +/- 5.4%
    unpack-code:         1121.0ms +/- 11.7%
    validate-input:     13442.4ms +/- 4.5%
 
    

Souhrn

Test Firefox Opera Internet Explorer
3.0 beta 5 2.0.0.12 9.50 beta 2 9.26 8 7
ACID 2 [ano/ne] ano ne ano ano ne ne
ACID 3 úspěšných testů 71 51 65 46 18 12
CSS 3 úspěšných testů 36 26 43 (100%) 26 14 13
JS benchmark [ms] 4568,4 21665,4 8604,4 N/A 15721,8 90479,8

Jak je z tabulky vidět, Opera i Mozilla velmi intenzivně pracují na vývoji a mají velmi dobré výsledky. Microsoft sice pracuje na uživatelském rozhraní a výkonu prohlížeče, ale co se týče standardů postupuje velmi pomalu. Moc nevěřím, že to ve finální verzi bude lepší. Ještě sice nevyšel IE8 ale už se mluví o IE9. Lidé z Microsoftu neustále mluví o tom že se budou zaměřovat na standardy. Jestli jsem to pochopil správně, měla by IE9 tyto standardy dodržovat. V jaké míře se ukáže později. Držím jim palce.