Comment puis-je référence code JavaScript?
Est-il un package qui permet de m'référence code JavaScript? Je ne suis pas référence à Firebug et de ces outils.
J'ai besoin de comparer les 2 différentes fonctions JavaScript que j'ai mis en œuvre. Je suis très familier avec Perl Référence (L'indice de référence.pm) module et je suis à la recherche de quelque chose de similaire en JavaScript.
A l'accent sur l'analyse comparative du code JavaScript passé par-dessus bord? Puis-je sortir avec un timing juste un exécuter des fonctions?
- Semble être une dup: stackoverflow.com/search?q=javascript+profiler
- Double Possible de Comment avez-vous test de performance du code JavaScript?
- Je sais que ce n'est pas à l'épreuve des balles et tout, mais connexes, de toute façon : parfois vous voulez juste pour savoir comment mesurer le temps pris par une fonction à exécuter.
- Je JavaScript bon outil de benchmark vous pouvez le trouver ici: jsben.ch
Vous devez vous connecter pour publier un commentaire.
Juste le temps de plusieurs itérations de chaque fonction. Une itération ne sera probablement pas assez, mais (selon la complexité de vos fonctions sont) quelque part près de 100 ou même de 1 000 itérations doit faire le travail.Firebug a aussi un profiler si vous voulez voir quelles sont les parties de votre fonction sont le ralentir.Edit: Pour les futurs lecteurs, ci-dessous la réponse de recommander JSPerf devrait être la bonne réponse. Je voudrais supprimer le mien, mais je ne peut pas car il a été sélectionné par l'OP. Il est beaucoup plus à l'analyse comparative que la simple exécution d'un nombre d'itérations et JSPerf prend soin de cela pour vous.
jsperf.com est le site pour les tests JS performance. Commencer par là. Si vous avez besoin d'un cadre pour l'exécution de vos propres tests en ligne de commande ou de scripts utilisation Benchmark.js, la bibliothèque sur laquelle jsperf.com est construit.
Remarque: Quiconque analyse de code Javascript doit s'éduquer eux-mêmes sur les pièges de la "microbenchmarks" (petits tests qui cible une fonction spécifique, ou de l'opération, plutôt que plus de tests complexes, basée sur des modèles de code). De tels tests peuvent être utiles, mais sont sujettes à l'inexactitude en raison de la façon moderne JS runtimes fonctionner. Vyacheslav Egorov présentation sur la performance et benchmarking vaut la peine de regarder pour avoir une idée de la nature du problème(s).
Edit: a Supprimé les références à mon JSLitmus travail que c'est juste plus pertinentes ou utiles.
1000/ops-per-sec
adresse-bar, mais il serait agréable d'avoir affiché sur la page elle-même)Simplement l'ajout d'un rapide minuterie pour le mélange, qu'on peut trouver utile:
Idéalement il doit être placé dans une classe, et non comme un mondial comme je l'ai fait pour les fins de l'exemple ci-dessus. L'aide qu'il serait assez simple:
performance.now()
au lieu deDate()
developer.mozilla.org/en-US/docs/Web/API/Performance/nowJuste manière simple.
J'ai été en utilisant cette simple mise en œuvre de @musicfreaks réponse. Il n'y a pas de fonctionnalités, mais il est vraiment facile à utiliser. Cette
bench(function(){return 1/2;}, 10000, [], this)
calculera 1/2 de 10 000 fois.C'est vraiment dur d'écrire décent de la croix-navigateur de points de référence. Simplement un calendrier pré-définis nombre d'itérations de votre code est pas à l'épreuve des balles à tous.
Comme @broofa déjà suggéré, découvrez jsPerf. Il utilise Benchmark.js derrière les coulisses.
si l'écriture a coutume de référence de script assurez-vous de noter que certains navigateurs appliquer les manipulations dom seulement après la fonction dans laquelle elles sont définies est terminé. Plus de détails ici
http://www.quirksmode.org/blog/archives/2009/08/when_to_read_ou.html
Si vous avez besoin de quelque chose de simple que vous pouvez faire comme ceci:
Voici un exemple de code