He estado buscando el código JavaScript de otras personas, y me he dado cuenta de que muchos programadores tienden a crear funciones que podrían combinarse con las funciones que los están llamando. Un ejemplo es this; la función 'initWebGL' podría combinarse con la función 'inicio' y funcionaría de la misma manera. Otro ejemplo está en la fuente de this, donde la función 'tick', que se llama cada 15 milisegundos, hace llamadas a otras dos funciones que pueden combinarse con 'tick'. Entiendo las cualidades organizativas de esto, pero tengo curiosidad sobre el efecto en el rendimiento. ¿Está haciendo esta buena práctica, especialmente teniendo en cuenta que JavaScript es un lenguaje interpretado?¿Qué tan caras son las llamadas a funciones en JavaScript?
8
A
Respuesta
9
La mejor práctica para cualquier idioma es escribir código que sea legible y mantenible primero, y luego para optimizar si necesario.
Si su programa se ejecuta lo suficientemente rápido dividido en trozos fáciles de digerir, entonces déjelo así. Si se está ejecutando lentamente, entonces como hobodave mencionado, perfil para encontrar la causa de la lentitud.
Las posibilidades son, que va a ser causado por algo más que llamar a funciones, pero si es causado por eso, entonces comienza a combinar funciones juntas, una vez que lo haya rastreado hasta eso.
4
8
http://www.slideshare.net/madrobby/extreme-javascript-performance diapositivas 10..19
10 000 llamadas hace una diferencia en el IE y Firefox. 1 llamada no.
Cuestiones relacionadas
- 1. ¿Qué tan caras son las llamadas a los métodos en .NET
- 2. ¿Por qué son tan caras las claves de firma?
- 3. ¿por qué las llamadas a funciones en bucles Perl son tan lentas?
- 4. "Las llamadas a funciones son costosas" vs. "Mantener funciones pequeñas"
- 5. ¿Qué operaciones son baratas/caras en mongodb?
- 6. ¿Qué son las llamadas en java?
- 7. Las funciones de JavaScript son objetos?
- 8. ¿Por qué son tan altas las lecturas lógicas para las funciones agregadas en ventanas?
- 9. Funciones de Javascript llamadas en Chrome
- 10. ¿Qué tan estables son las máquinas ec2?
- 11. ¿Qué son las convenciones de llamadas personalizadas?
- 12. Aplicaciones de AI en C++: ¿Qué tan costosas son las funciones virtuales? ¿Cuáles son las posibles optimizaciones?
- 13. ¿Qué son exactamente las funciones anónimas?
- 14. ¿Las funciones anónimas son una mala práctica en JavaScript?
- 15. ¿Qué son las funciones __defineGetter __() y __defineSetter __()?
- 16. ¿Qué tan seguras son las funciones nativas de php para usar con entradas no filtradas?
- 17. JavaScript expresiones regulares persiste literales entre llamadas a funciones
- 18. Javascript sintaxis: llamadas a funciones y el uso de paréntesis
- 19. ¿Por qué los iframes son tan lentos?
- 20. Estilo Scala: ¿qué tan lejos anidar las funciones?
- 21. ¿Cómo burlarse de las llamadas a funciones encadenadas en python?
- 22. ¿Por qué ciertas llamadas a funciones se denominan "invocaciones ilegales" en JavaScript?
- 23. ¿Las operaciones más caras en PHP?
- 24. ¿Qué es mejor en eventos personalizados de JavaScript o en llamadas a funciones normales?
- 25. ¿Por qué las consultas WMI son tan lentas algunas veces?
- 26. ¿Por qué utilizar los detectores de eventos sobre las llamadas a funciones?
- 27. ¿Por qué las contraseñas bancarias son tan débiles?
- 28. ¿Qué tan populares son las revisiones del código de seguridad?
- 29. ¿Qué tan seguras son las claves de acceso Amazon AWS?
- 30. Evitar llamadas a funciones heredadas en VB.NET
¿Esto no depende de qué intérprete utilizas? – kennytm
Si un lenguaje de programación requiere que pierda organización para ser lo suficientemente eficiente, ese lenguaje debe ser activado. – seanmonstar
Las llamadas a funciones en Javascript son menos costosas que la pesadilla de mantenimiento causada por un código mal organizado. – friedo