¿Cuánto tiempo requiere el uso de try
/catch
en JavaScript? Tengo una aplicación y la estoy usando en una función que se llama unos cientos de veces. Ahora me temo que la declaración try
/catch
está tomando demasiado tiempo y la aplicación tardará mucho más que sin ella.Uso de try-catch en JavaScript
Respuesta
Hay algunas pruebas agradables en jsPref:
- http://jsperf.com/try-catch-performance-overhead
- http://jsperf.com/try-catch-versus-massive-if
- http://jsperf.com/try-catch-002
Conclusión: en el principal navegador, nula a diferencias mínimas.
Sin diferencia SI el bloque catch nunca se ingresa. Si lo hace puede causar grandes problemas de rendimiento b/c catch blocks son alcance dinámico. Nunca los use para lógica de programa, solo para errores inevitables reales. http://yuiblog.com/assets/High_Perf_JavaScr_Ch2.pdf – sym3tri
Las funciones que contienen sentencias try y catch son inlined si no se lanza un error, de lo contrario, si es el método/función se des-optimiza. – simonrichardson
La cláusula try
/catch
crea un nuevo ámbito en javascript, por lo que cada variable que provenga del ámbito principal será un poco más lenta.
La sobrecarga no es que grande pero demasiado grande para ignorar por completo los circuitos internos.
Tome un vistazo a este vídeo para una explicación más en profundidad: http://www.youtube.com/watch?v=mHtdZgou0qU
No es correcto decir que un bloque 'try' presenta un nuevo alcance. – Pointy
@Pointy: cierto, pero no puedo pensar en una mejor descripción en este momento. ¿Tienes alguna sugerencia? – Wolph
Sé lo que está aprendiendo, pero no conozco la sofisticada terminología de "abogado de idiomas" :-) – Pointy
En general, código que se ejecuta dentro de un bloque try
es caro. Pero si está invocando un bloque try
del orden de unos cientos de veces, probablemente no sea un problema. Si se tratara de unos pocos cientos de miles, es posible que desee volver a pensar en su diseño.
Usted debe tomar nota de lo siguiente:
“La primera regla de la optimización del programa: no lo hacen. La Segunda Regla de la Optimización del Programa (solo para expertos): No lo hagas aún. "- Michael A. Jackson
He perdido tiempo optimizando secciones de código que tuvieron poco impacto en el rendimiento. Asegúrate de saber qué es lento ejecutando algunos experimentos de sincronización.
- 1. Uso de tryCatch y fuente
- 2. tryCatch y ggplot
- 3. pros y contras de TryCatch versus TryParse
- 4. cargar un archivo de datos en R utilizando TryCatch
- 5. Uso de enumeraciones en JavaScript
- 6. Uso de patrones de herencia en JavaScript
- 7. ¿Cuál es el uso del uso de init() en JavaScript?
- 8. Telnet Uso de applets en JavaScript
- 9. Uso de javascript en Symfony2/Twig
- 10. Uso del código JSP en JavaScript
- 11. Uso de toString() en lugar de constructor en JavaScript
- 12. Uso de Twig para archivos Javascript dinámicos
- 13. ¿Hay algún inconveniente en el uso de funciones anónimas en JavaScript? P.ej. ¿uso de memoria?
- 14. Ámbito de uso de "var' en los programas de javascript
- 15. JQuery/Javascript y el uso de operadores &&
- 16. Uso de datos JSON en D3 Visualización de Javascript
- 17. Uso de instrucciones jQuery en funciones simples de JavaScript
- 18. Uso de rutas de JavaScript en Play Framework 2
- 19. Uso de archivos javascript externos en un archivo .js
- 20. El uso de un tiro en una expresión Javascript
- 21. ¿Cómo uso Javascript en mi página de Coldfusion?
- 22. qué significa este uso de apply() en Javascript
- 23. Añadir índice preexistentes ObjectStore En IndexedDB uso de JavaScript
- 24. Herramientas para encontrar uso de memoria en javascript?
- 25. Uso de letras para hacer cálculos matemáticos en Javascript
- 26. MDN javascript docs para uso sin conexión
- 27. ¿Cómo uso Mechanize para procesar JavaScript?
- 28. JavaScript mayor/menor uso. ¿Qué es aceptable en estos días?
- 29. ¿Cómo uso los valores Razor en una función javascript?
- 30. ¿Cómo declaro y uso variables dinámicas en javascript?
¿Has medido algo? – Kangkan