2009-03-13 6 views

Respuesta

20

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.

+0

+1 por considerar IL –

+0

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 ... –

+0

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. –

5

No tiene ningún impacto en un lenguaje compilado.

0

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).

0

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.

0

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.

0

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.

0

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.

Cuestiones relacionadas