Utilisation de try-catch en JavaScript
Quelle est la durée de L'utilisation de try
/ catch
en JavaScript? J'ai une application et je l'utilise dans une fonction qui est appelée une centaine de fois. Maintenant, je crains que la déclaration try
/ catch
prenne trop de temps et que l'application prenne beaucoup plus de temps que sans elle.
4 réponses
il y a de beaux tests sur jsPref:
- http://jsperf.com/try-catch-performance-overhead
- http://jsperf.com/try-catch-versus-massive-if
- http://jsperf.com/try-catch-002
Conclusion: sur le navigateur principal, différences nulles à minimes.
vous devez prendre note de ce qui suit:
"La Première Règle de l'Optimisation du Programme: ne pas le faire. La deuxième règle de L'optimisation de programme (pour les experts seulement!): Ne le faites pas encore."- Michael A. Jackson
j'ai perdu du temps à optimiser des sections de code qui avaient peu d'impact sur la performance. Assurez-vous de savoir ce qui est lent en lançant des expériences de timing.
la clause try
/ catch
crée une nouvelle portée en javascript, de sorte que chaque variable qui doit provenir de la portée mère sera légèrement plus lente.
La surcharge n'est pas que grand mais trop grand pour ignorer complètement à votre intérieur des boucles.
regardez cette vidéo pour une explication plus détaillée: http://www.youtube.com/watch?v=mHtdZgou0qU
en général, le code exécuté à l'intérieur d'un bloc try
est coûteux. Mais si vous invoquez un bloc try
sur l'ordre de quelques centaines de fois, ce n'est probablement pas un problème. Si c'était quelques centaines de milliers, vous pourriez vouloir repenser votre conception.