Firefox 4: I benchmark

Lettera aperta ai recensori distratti

Questo articolo non contiene benchmark, il Web ne è già pieno, contiene invece qualche risorsa utile per capirli e qualche nota ai recensori distratti...

L'idea è nata per caso sul forum di Mozilla Italia, perchè ammettiamolo, dopo aver visto numerose versioni e i soliti articoli campati in aria con tanti benchmark e poche spiegazioni, ci siamo un po' stancati del giornalismo facile. Ma in fondo mi rendo conto che non sia facile stare aggiornati su tutto ciò che avviene in ogni ambito e come pubblicare dei numeri sia più semplice che investigarli.

Abbiamo quindi raccolto qualche FAQ base sui vari benchmark che presto compariranno sul Web, cercando di spiegare meglio il perchè dei risultati. Qualsiasi discussione in merito può proseguire sul forum in modo costruttivo.

Acid3

Il guru di tutti i test, ogni recensione non mancherà di pubblicarlo, alcune spiegheranno correttamente perchè IE9 e Firefox4 non raggiungono 100, altre pigramente assegneranno un punteggio migliore ad altri browser.

Alexander Limi (Firefox UX Team) ha già raccolto in un ottimo articolo la spiegazione del perchè Mozilla (e Microsoft) non sono interessate ad implementare gli ultimi punti di questo test. Brevemente, i caratteri SVG sono stati sostituiti da tecnologie migliori, il consorzio SVG stesso li ha dichiarati facoltativi per il web, implementarli non giova a nessuno, i browser che li hanno implementati l'hanno fatto solamente per raggiungere punteggio pieno nel test.

Acid3 è un test decente, ma non rappresenta più il Web attuale, un nuovo test (Acid4) dovrà nascere a breve. Altri test come The HTML5 Test sono migliori.

Sunspider

Sunspider è da sempre stato considerato il test base per valutare la velocità del browser. Oggi non lo è più, tutti i browser sono in un pugno di millisecondi, che l'utente finale non può notare. L'ultima versione di ogni browser esistente è in grado di masticare il test Suspider e sputarlo via con disprezzo.

Internet Explorer 9 è attualmente il più veloce in questo test, risulta più veloce di ogni altro browser. Questo risultato è frutto di un'ottimizzazione che Microsoft definisce dead-code-elimination. Nella realtà pare che questa ottimizzazione ottimizzi solo le funzioni di Sunspider (una minima modifica no-op rimuove l'ottimizzazione) ed il motivo è chiaro, se questa ottimizzazione fosse applicata al codice reale causerebbe bug. Robert Sayre ha scritto un breve articolo per spiegare la cosa.

Mozilla Kraken e Google V8 sono test molto migliori di Sunspider oggi, per valutare la velocità di esecuzione Javascript (che in ogni caso non è tutto!).

PeaceKeeper

PeaceKeeper oggi non è un test affidabile. Per svariati motivi, principalmente perchè ha numerosi bug che causano errori di misurazione in diverse parti del test. Ciò non significa che sia un pessimo test, ma molti dei controlli interni testano cose diverse da quelle richieste. Per fare un esempio alcuni test per valutare el performance eseguono chiamate ad intervalli regolari, ma i diversi produttori di browser usano limiti diversi per l'intervallo minimo utilizzabile, ecco che PeaceKeeper anzichè misurare le prestazioni misura le impostazioni del browser.

Nel complesso è un test che può essere considerato accettabile per confrontare i browser attuali con quelli di generazione precedente, ma la comparativa tra browser attuali viene minata da questi bug. Speriamo che in futuro la situazione migliori, avere più benchmark stabili e più concorrenza può solo giovare al Web.

Gli standard del web

Gli standard del web non si possono misurare basandosi sui propri test interni. Il marketing di IE9 ha fatto un ottimo lavoro mostrando che IE9 passa il 99% dei test interni scritti durante lo sviluppo e gli altri browser no. Non è forse vero per ogni software (almeno lo spero). Sia chiaro che avere più test è apprezzato, e Microsoft ha fatto un lavoro fantastico sottoponendo i propri test al w3c per l'approvazione, ma restano un metro di giudizio di parte.

Supportare il web significa anche supportare le ultime specifiche, dare in mano ad utenti e sviluppatori gli strumenti per testarle, valutarle e anche assolutamente cambiarle. Non implementare qualcosa solo perchè potrebbe migliorare, fa male al progresso del Web.

Ecco che i veri test per valutare il supporto a quello che gli sviluppatori chiedono e che può fare la differenza per gli utenti sono altri, indipendenti. Due esempi su tutti: The HTML5 Test e Can I Use.

Il mito della "piena accelerazione"

Con Internet Explorer 9 Microsoft ha introdotto il mito della "Full hardware acceleration of the whole web platform". Ovvero il mito che Internet Explorer sia l'unico browser ad accelerare l'intera piattaforma Web. Ad esempio sono riportati una serie di benchmark tratti da IE TestDrive (ottimo sito tra l'altro, con un sacco di demo interessanti, anche se a volte non ottimizzate per tutti i browser).

Su queste demo Internet Explorer 9 fa meglio di ogni altro browser, è assolutamente vero e tutti sono interessati ad usare queste demo per analizzare le proprie prestazioni (di contro esistono altre demo in cui la situazione si capovolge). Il punto è che ciò non avviene perchè ad esempio Firefox 4 non implementi l'accelerazione hardware quanto IE9, ma per altre cause (tra cui anche lo stesso problema dei timeout che affligge PeaceKeeper), tanto è vero che, senza alcuna modifica all'accelerazione hardware, dopo qualche ora di analisi è stato possibile realizzare una versione di Firefox che fa anche meglio di IE9 (tra parentesi Firefox 5 includerà molte di queste migliorie).

La piattaforma web non può essere completamente accelerata, solo alcune parti di essa possono esserlo, molti dei test che affermano di misurare le prestazioni dell'accelerazione hardware, finiscono per misurare altro.

Un altro esempio banale è FishIE, in questo test Firefox 4 ottiene ottimi risultati ad esempio. Ma il test misura veramente il meglio possibile per l'accelerazione hardware? È questo il meglio che un browser può fare per i suoi utenti? Jeff Muzielaar (Firefox Layout team) ha modificato il test, andando a valutarne le debolezze, usando WebGL (nuovo standard per la grafica 3D sul web) ha ottenuto una versione di FishIE in grado di visualizzare 60 mila pesci a 30fps, contro i mille del test originale. Inutile dire che Internet Explorer 9 non supporta WebGL e non sono noti piani per la sua aggiunta.

Prossimamente inserirò un altro articolo con qualche altra demo carina per vedere all'opera i nuovi standard e l'accelerazione grafica, realizzati anche da Mozilla, Google o terze parti.

Conclusioni

I benchmark sono fantastici, la concorrenza è salutare, i test sono utili, ma perfavore investighiamo se i risultati dei test hanno il senso che vogliamo dar loro.

MaK Martedì 22 Marzo 2011 at 6:42 pm | | Internet
Tag usati: , ,