[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