[Cascavel-pm] threads e uso de CPU

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Sexta Dezembro 11 07:10:42 PST 2009


2009/12/11 Alceu Rodrigues de Freitas Junior <glasswalk3r em yahoo.com.br>:
> Eu tirei os shared a a velocidade melhorou muito.
>
> No entanto, tive a impressão que o consumo de memória aumentou bastante
> também ao fazer isso. Antes ficava em torno de 800MB e depois passou a ser
> 1,2GB e isso ficou estável durante toda a execução do programa. Mas eu
> testei isso uma vez só e foi bem rápido, pode ter sido por outra razão.

Foi só impressão, o shared não tem nada a ver com compartilhamento
*real* de memória.
Pode conferir no código dele, ele é um módulo normal.

Esse é o principal problema de threads em Perl: eles são
"heavyweight", como processos.

Fizeram assim justamente porque aí não tem problemas de memória
compartilhada, já que todo compartilhamento é explícito e feito
através de sincronia de cópias.

Por isso, em *nix, muita gente prefere usar processos (fork) ao invés
de threads mesmo, porque com forks, o OS faz Copy-on-Write e aí sim
pode economizar memória, mas isso não existe em Windows, afaik.

-Nilson Santos F. Jr.


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