test ici: http://jsperf.com/test-for-speed-of-various-conditionalsPourquoi Safari offrirait-il des résultats presque opposés ici?
Je suis intéressé si d'autres obtiennent les mêmes résultats, et ce que les gens pourraient penser pourquoi les résultats varient (en particulier w/Safari.) À travers les navigateurs. Intéressant est comment démocratiquement Firefox gère les différents cas.
S'il vous plaît informer s'il y a quelque chose de terriblement mal avec ma méthode :)
Firefox 3.6/Mac OS X 10,64: Switch = 824,352 Ops/sec (14% plus lent)
Si/else = 530062 (44% Plus lente, lente)
Hash/lazy = 968.035 (la plus rapide)
Hash/if/else = 963.765 (0% plus lente)
Chrome 10,64 6.0.472.63/Mac OSX:
Switch = 10,220,039 Ops/sec (62% plus lent)
Si/else = 7744284 (71% Plus lent, Slowest)
Hash/lazy = 27130039 (le plus rapide)
Hash/if/else = 25297370 (6% Plus lent)
Safari 5.0.2/Mac OS X 10,64:
Switch = 15,044,132 Ops/sec (le plus rapide)
Si/else = 1793051 (88% Plus lent, Slowest)
Hash/lazy = 10381941 (30% Plus lent)
Hash/if/else = 11119576 (26% Plus lent)
Opera 10.10/Mac OSX 10.64:
Switch = 497,238 Ops/s (32% plus lente)
Si/else = 250904 (66% plus lente, lente)
Hash/lazy = 740.520 (la plus rapide)
Hash/if/else = 634424 (14% plus lente)
MSIE 8.0/Windows NT:
Switch = 176,267 Ops/s (60% Plus lent)
Si/else = 124783 (72% Plus lent, Slowest)
Hash/lazy = 447421 (le plus rapide)
Hash/if/else = 442,736 (14% plus lent)
Quelle est la question à nouveau? – spender
Le conseil général est de ne pas utiliser switch(), optant plutôt pour une sorte de recherche. Et ce conseil vaut pour tous les navigateurs sauf pour Safari - où le switch est en fait le plus rapide, de loin. Je me demandais d'abord si j'avais des hallucinations, et la seconde si quelqu'un sait pourquoi cela serait (en particulier étant donné que Chrome ne montre pas ce comportement). –
Bien que Chrome et Safari utilisent WebKit pour le rendu, ils ont différents moteurs JavaScript (V8 pour Chrome et Nitro pour Safari). – Chuck