Al declarar un nombre de variable, ¿cuánto impacto (si es que lo hace) tiene la longitud de su nombre en la memoria total de la aplicación? ¿Hay una longitud máxima de todos modos? ¿O podemos elaborar nuestras variables (e instancias) tanto como queramos?¿Cómo el nombre de una variable tiene algún impacto en el uso de la memoria de una aplicación?
Respuesta
Depende del idioma, en realidad.
Si usa C++ o C, no tiene ningún impacto.
Si está utilizando un lenguaje interpretado, está pasando el código fuente, por lo que puede tener un impacto dramático.
Si está utilizando un lenguaje compilado que se compila en un lenguaje intermedio, como Java o cualquiera de los lenguajes .NET, los nombres de variables, nombres de clases, métodos, etc. son todos parte del IL. Tener nombres de métodos más largos tendrá un impacto. Sin embargo, si luego se ejecuta a través de un ofuscador, esto desaparece, ya que el ofuscador cambiará el nombre de todo a nombres (generalmente) muy cortos. Esta es la razón por la ofuscación a menudo da impacto en el rendimiento.
Sin embargo, recomiendo usar nombres largos de variables/métodos/clases descriptivos. Esto hace que el código sea comprensible, fácil de mantener y legible; a largo plazo, supera con creces cualquier rendimiento leve. beneficio.
+1 por considerar IL –
IL es demasiado importante como para ignorarlo. Java, C#, VB.Net son los que piensas, pero incluso Python no se interpreta, tiene su propia forma de IL ... –
El nombre puede ser parte de IL, pero en .NET al menos, el IL está JIT en el lenguaje de máquina, así que, de nuevo, no hay nombres de variables. –
No tiene ningún impacto en un lenguaje compilado.
En lenguajes compilados, casi con certeza no; todo se convierte en un símbolo en una tabla de símbolos. En los idiomas interpretados, la respuesta también es no, con algunas excepciones extremadamente raras (en ciertas versiones anteriores de Python habría una diferencia, por ejemplo).
MSVC++ trunca los nombres de las variables a 255 caracteres. La longitud del nombre de la variable no tiene impacto en el tamaño del código compilado.
Según lo manifestado por otros, los nombres de las variables desaparecen en los idiomas compilados. Creo que los nombres de variables locales en .Net pueden descartarse. Pero en términos generales, incluso en un lenguaje interpretado, el consumo de memoria de nombres de variables es insignificante, especialmente a la luz de las ventajas de buenos nombres de variables.
En realidad, en ASP.NET, los nombres largos de variable para controles y páginas maestras se suman al tamaño del HTML generado. Esto agregará algo de memoria extra insignificante para amortiguar el flujo de salida, pero el efecto se notará más en los pocos cientos de bytes adicionales que envía a través de la red.
En Python, los nombres aparecen recogidos en varias tablas simples; cada nombre aparece exactamente una vez en cada objeto de código. Los nombres no tienen impacto en el rendimiento.
Para fines estadísticos, miré una función de 20 líneas que era una solución al problema 15 de Project Euler. Esta función creaba un objeto de código de 292 bytes. Usó 7 nombres distintos en la tabla de nombres. Tendría que usar nombres de variables de 41 caracteres para duplicar el tamaño del archivo de código de bytes.
Ese sería el único impacto: nombres terriblemente grandes podrían ralentizar el tiempo de carga de su módulo.
- 1. ¿Qué impacto, si corresponde, tiene el conmutador -d64 en el uso de la memoria residente de Sun JVM?
- 2. Cómo reducir el uso de memoria de una aplicación WPF
- 3. ¿Supervisa el uso de memoria en una aplicación de iphone?
- 4. ¿Cuánto impacto tiene el uso de 'var' en el rendimiento del compilador de C#?
- 5. ¿Hay algún impacto en el rendimiento en el uso de Live en lugar de vincular jQuery?
- 6. Limitar el uso de memoria de una aplicación .net
- 7. Cómo medir la memoria gráfica Uso de una aplicación WebGL
- 8. ¿Una fuga de memoria de la aplicación causa una fuga de memoria en el sistema operativo?
- 9. ¿El tamaño declarado de un campo varchar tiene algún impacto en PostgreSQL?
- 10. ¿Hay algún inconveniente en el uso de funciones anónimas en JavaScript? P.ej. ¿uso de memoria?
- 11. ¿El uso de require con la opción: recargar tiene una tendencia a acumular memoria en Clojure?
- 12. Obtener el nombre de una variable local
- 13. La combinación de una cadena con el valor de una variable a ser el nombre de otra variable en El
- 14. Cómo determinar el uso de memoria en mi aplicación .NET
- 15. Cómo registrar el uso de la memoria de una aplicación Django por solicitud
- 16. El temporizador aumenta el uso de memoria en la aplicación C#
- 17. ¿Cómo imprimir el nombre de una variable en C++?
- 18. ¿Cómo perfil el uso de la memoria?
- 19. Cómo utilizar el valor de una variable como el nombre de otra variable en bash
- 20. ¿Tiene ACL en Linux un impacto en el rendimiento?
- 21. ¿Tiene algún impacto en el rendimiento de Oracle al usar LIKE 'cadena' vs = 'cadena'?
- 22. Emacs Cambiar el nombre de la variable
- 23. ¿Hay alguna manera de recuperar el uso de la memoria actual de una aplicación C#?
- 24. ¿setNeedsDisplay: NO tiene algún uso?
- 25. Limitar el uso de memoria y CPU de aplicación Java
- 26. Obtener el nombre de una variable como entrada y cambiar la variable con ese nombre
- 27. Encontrar el nombre de la variable pasa a una función
- 28. dot en el nombre de la variable
- 29. ¿Minimiza el rendimiento de impacto de Node.js?
- 30. C#: La inicialización de una variable con el "uso"
+1 - estaba a punto de preguntar esto. – mauris