Estoy optimizando algunos códigos Perl que se ejecutan con frecuencia (una vez al día por archivo).¿Los comentarios afectan el rendimiento de Perl?
¿Los comentarios retrasan los scripts de Perl? Mis experimentos se inclinan por no:
use Benchmark;
timethese(20000000, {
'comments' => '$b=1;
# comment ... (100 times)
', 'nocomments' => '$b=1;'});
Proporciona valores prácticamente idénticos (aparte del ruido).
Benchmark: timing 10000000 iterations of comments, nocomments...
comments: 1 wallclock secs (0.53 usr + 0.00 sys = 0.53 CPU) @ 18832391.71/s (n=10000000)
nocomments: 0 wallclock secs (0.44 usr + 0.00 sys = 0.44 CPU) @ 22935779.82/s (n=10000000)
Benchmark: timing 20000000 iterations of comments, nocomments...
comments: 0 wallclock secs (0.86 usr + -0.01 sys = 0.84 CPU) @ 23696682.46/s (n=20000000)
nocomments: 1 wallclock secs (0.90 usr + 0.00 sys = 0.90 CPU) @ 22099447.51/s (n=20000000)
puedo obtener resultados similares si se me acaban los comentarios y versiones sin comentarios como scripts de Perl separadas.
Parece contra-intuitivo, sin embargo, si nada más el intérprete necesita leer los comentarios en la memoria cada vez.
¿No hace Perl hacer algún tipo de compilación sobre la marcha? Tal vez los comentarios se descartan temprano? –
Quizás no esté agregando suficientes comentarios para marcar la diferencia. –
Apuesto a que las nuevas líneas también disminuyen lentamente. Deberías hacer como los verdaderos maestros de Perl, y poner todo tu código en una sola línea. – davr