2011-09-06 20 views
7

Soy un desarrollador de Android y la siguiente pregunta me vino a la mente: cuando puse un gran comentario para compilar el proceso, ¿es que mientras ponemos nuestro útil comentario en código, el compilador puede tomar algo de tiempo en la sección de comentarios?¿Los comentarios afectan el tiempo de compilación?

Si no, ¿no tiene ningún efecto desde cuánto tiempo nuestro comentario?

Respuesta

21

¿Puede el compilador tomarse un tiempo en la sección de comentarios?

Aparte de la sobrecarga IO de atravesar los bytes correspondientes a la observación (que debería ser insignificante, siempre y cuando no sea un comentario largo de varios megabytes), que no hará ninguna diferencia lo que nunca. La mayoría de los compiladores ni siquiera incluyen los comentarios en AST, lo que significa que los comentarios desaparecen por completo después del análisis.

Nunca decidas si incluir o no un comentario en función del tiempo de compilación. Base su decisión únicamente en si hace que el código sea más legible o no.

Más información:

10

Se necesita tiempo para leer y analizar estos bloque de comentario, pero esta vez es tan corta que no lo hará aviso y de todos modos no es excusa para no poner comentarios (extensos y útiles) en sus programas :-)

11

Sí, cada comentario que escriba hará que la compilación sea más lenta, porque el compilador tiene que leer más texto. Pero: leer comentarios es muy fácil para un compilador, y se hace rápidamente, por lo que no debes preocuparte por ello.

Puede probarlo usted mismo. Cree un programa que genere un código fuente simple con muchos comentarios en él.

int i = 0; 
... 
i++; /* This is a comment, and maybe a very long one. */ 
... 

Ahora puede experimentar haciendo que este comentario (generado) sea muy largo, posiblemente incluso megabytes. Luego mida la diferencia al compilar el código con comentarios pequeños y grandes, y verá que la velocidad aún es aceptable.

+0

Otra advertencia es que el uso de caracteres especiales en los comentarios también puede romper su compilación. Lea el libro Java Puzzlers para ver un ejemplo. – Scorpion

+0

¿Quiere decir '// usar \ u000A para UNIX linebreak'? ;) –

+0

me tienes :-). Fue interesante. – Scorpion

Cuestiones relacionadas