[Cascavel-pm] Res: Perl
Nilson Santos Figueiredo Junior
acid06 em gmail.com
Segunda Novembro 27 12:00:25 PST 2006
On 11/27/06, Breno G. de Oliveira <breno em clavis.com.br> wrote:
> por outro lado, o valor piora bastante quando a declaração da variável
> vai pra dentro da sub ("open my $fh, ...")
Meus resultados foram bem diferentes dos seus:
Rate local var GLOB global var
local var 21918/s -- -12% -13%
GLOB 24950/s 14% -- -0%
global var 25050/s 14% 0% --
(WinXP SP2, AS Perl 5.8.8, Athlon 64 3500+)
Usar a variável local (my $fh) é ~13% mais lento.
Realizei o teste em outra máquina também:
Rate local var global var GLOB
local var 8403/s -- -43% -45%
global var 14815/s 76% -- -2%
GLOB 15152/s 80% 2% --
(Ubuntu 5.10, Perl 5.8.7, PowerPC 350MHz)
Nesse caso, os resultados refletiram os obtidos por você mais ou menos.
Por acaso você testou utilizando perl 5.8.7?
Só pra complementar, testei em um servidor:
Rate local var GLOB global var
local var 162602/s -- -32% -33%
GLOB 237530/s 46% -- -2%
global var 242718/s 49% 2% --
(SuSE 9.x, Perl 5.8.3, algo poderoso)
Não consegui determinar se é algo da 5.8.8 ou se é algo da versão pra
Windows. Alguém poderia testar num Linux com Perl 5.8.8, só pra matar
a curiosidade. No entanto, isso é completamente irrelevante uma vez
que você não fica abrindo mais de 15 mil arquivos por segundo, além de
ser um overhead esperado, já que a cada iteração a variável é alocada
e desalocada enquanto nos outros dois casos são variáveis globais.
Uma outra possibilidade é que a abertura de um arquivo no Linux é uma
operação mais lightweight que no Windows, por isso, o overhead da
variável local parece menor no Windows.
-Nilson Santos F. Jr.
Mais detalhes sobre a lista de discussão Cascavel-pm