[Cascavel-pm] Medir uso de memória [Era: File::Linting nao funciona]

Igor Sutton igor.sutton em gmail.com
Quinta Junho 8 09:27:39 PDT 2006


>
> Aproveitando que tocamos nesse método... eu sempre uso dessa forma:
>
> <code>
> foreach (readdir $dir) {
>    (...)
> }
> </code>
>
> A documentação do readdir diz que quando avaliado em contexto escalar
> retorna o próximo item ou undef caso não existam mais itens. Em contexto
> de lista retorna todos os elementos encontrados.
>
> A primeira pergunta é: qual dos dois métodos é mais rápido? (isso pode
> ser respondido com um benchmark simples) e a segunda é:
>
> existe diferença no uso de memória nas duas maneiras?
>
> A princípio parece óbvio que sim, pois colocar uma lista inteira na
> memória gasta mais do que pegar item a item, porém o contexto de lista é
> no foreach, daí, a princípio o compilador poderia fazer essa otimização
> e pegar de um em um.


Creio que o interpretador não faz esta optimização. Ele irá executar o
readdir() em contexto de lista, que internamente executará algo como 'if
(wantarray) { ... }' e devolverá uma lista para o foreach(), que a iterará
normalmente. Se alguém aí souber algo diferente, nos deixe ficar sabendo :)

Para medir tempo de execução tenho o Benchmark... e para medir o uso de
> memória?
>
> Eu poderia criar um diretório com milhões de entradas e executar o
> script pra esse diretório, e então medir o tamanho do segmento de dados
> do processo, mas isso é tão impreciso quanto colocar pra rodar com o
> 'time' do bash (em linux) querendo medir tempo.
> Alguém conhece um módulo similar pra medir uso de memória? Buscando por
> 'memory usage' na CPAN só achei o Benchmark::Harness::MemoryUsage
> <
> http://search.cpan.org/%7Eglennwood/Benchmark-Harness-1.07/lib/Benchmark/Harness/MemoryUsage.pm#Benchmark%3A%3AHarness%3A%3AMemoryUsage
> >,
> mas não sei até onde ele é funcional (não tem documentação e é de 2004).
>
> E alguém já fez essa comparação que disse acima?


Eu particularmente nunca fiz isso.

Valeu!
>
> Gilmar.
> - Salvador Perl Mongers
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Igor Sutton Lopes
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20060608/7e81838e/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm