[Madrid-pm] Optimizando el valor de vuelta de una subrutina

Salvador Fandino sfandino en yahoo.com
Lun Mayo 28 14:07:46 PDT 2012






>________________________________
> From: JJ Merelo <jjmerelo en gmail.com>
>To: Lista de correo de Madrid Perl Mongers <madrid-pm en pm.org> 
>Sent: Monday, May 28, 2012 7:52 AM
>Subject: Re: [Madrid-pm] Optimizando el valor de vuelta de una subrutina
> 
>
>Finalmente, usar return; parece que es lo más rápido. Aún así, se come unos cuantos milisegundos... ¿Salir con croak merecería la pena? ¿O pillar la excepción a otro nivel se comería cualquier aumento de velocidad?


No se puede hacer nada, llamar a croak seria mucho peor, dado que esto implica llamar todavia a otra subrutina, si llamas a die, puedes saltar varios varios niveles de subrutina, pero Perl realizaria de todas formas las labores de limpieza de toda la cadena y por otro lado para detener la excepcion necesitas ponerlo todo dentro de un "eval" y para los "eval" se crea un contexto especial que es aun mas caro que el de llamada a una subrutina con lo cual tampoco va a compensar fuera de casos extremos (por ejemplo, devolver el control a una subrutina que esta muchos niveles por arriba).


Más información sobre la lista de distribución Madrid-pm