From dafneves em gmail.com Thu Jan 6 16:55:20 2011 From: dafneves em gmail.com (Diogo Neves) Date: Fri, 7 Jan 2011 00:55:20 +0000 Subject: [Cascavel-pm] Procuro oportunidade no Brasil Message-ID: Boa noite a todos, Sou português e neste momento em que estou a passar por uma mudança na minha vida gostaria de aproveitar esta mudança para concretizar algo que já gostava de fazer à alguns anos e mudar mais um pouco. Eu gostaria de trabalhar no Brasil, sou programador web, principalmente PHP ( eu sei eresia, peço desde já desculpa ) e serve este mail para perguntar se alguém conhece oportunidades por esses lados do oceano. Tenho preferência por projectos desafiantes como uol, terra ou ig mas estou aberto a qualquer oportunidade que possam conhecer. Para dar apenas uma ideia da minha experiência tenho 5 anos de experiência desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com alguns pequenos projectos em perl/asp 4 ( the old one ). Alguma experiência de desenvolvimento javascript ( conhecimento mais profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous ). Desde já agradeço a atenção e desculpem a eresia deste mail ;) -- Obrigado, Diogo Neves Web Developer @ SAPO.pt -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From russoz em gmail.com Fri Jan 7 03:06:16 2011 From: russoz em gmail.com (Alexei Znamensky) Date: Fri, 7 Jan 2011 09:06:16 -0200 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: Bem vindo!! Não era "heresia" ? ou o 'h' foi abolido pelas 'novas regras' da gramática também? :-O Diogo, estranhamente, as pessoas daqui estão tentando ir para a Europa, mas até aí, a grama é sempre mais verde do lado do vizinho. []s, Alexei 2011/1/6 Diogo Neves > Boa noite a todos, > > Sou português e neste momento em que estou a passar por uma mudança na > minha vida gostaria de aproveitar esta mudança para concretizar algo que já > gostava de fazer à alguns anos e mudar mais um pouco. > > Eu gostaria de trabalhar no Brasil, sou programador web, principalmente PHP > ( eu sei eresia, peço desde já desculpa ) e serve este mail para perguntar > se alguém conhece oportunidades por esses lados do oceano. > > Tenho preferência por projectos desafiantes como uol, terra ou ig mas estou > aberto a qualquer oportunidade que possam conhecer. > > Para dar apenas uma ideia da minha experiência tenho 5 anos de experiência > desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com alguns pequenos > projectos em perl/asp 4 ( the old one ). > > Alguma experiência de desenvolvimento javascript ( conhecimento mais > profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous > ). > > Desde já agradeço a atenção e desculpem a eresia deste mail ;) > > -- > Obrigado, > > Diogo Neves > Web Developer @ SAPO.pt > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [ www.flickr.com/photos/alexeiz] «Only love / Can bring the rain / That makes you yearn to the sky» -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From dafneves em gmail.com Fri Jan 7 03:13:17 2011 From: dafneves em gmail.com (Diogo Neves) Date: Fri, 7 Jan 2011 11:13:17 +0000 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: Tem razão, não sei se nas regras novas foi abulido mas realmente eu não estava a tentar seguir regras novas, foi mesmo um erro da minha parte. Eu não estou a mudar de pais por uma razão de achar que ai se vive melhor ou se ganha mais mas por querer ter uma experiência num pais diferente e com uma cultura bastante diferente da portuguesa. Para mim como apaixonado pelo brasil e como sendo um pais com a mesma lingua seria um pais naturalmente mais propício. 2011/1/7 Alexei Znamensky > Bem vindo!! > > Não era "heresia" ? ou o 'h' foi abolido pelas 'novas regras' da gramática > também? :-O > > Diogo, estranhamente, as pessoas daqui estão tentando ir para a Europa, mas > até aí, a grama é sempre mais verde do lado do vizinho. > > []s, > Alexei > > 2011/1/6 Diogo Neves > >> Boa noite a todos, >> >> Sou português e neste momento em que estou a passar por uma mudança na >> minha vida gostaria de aproveitar esta mudança para concretizar algo que já >> gostava de fazer à alguns anos e mudar mais um pouco. >> >> Eu gostaria de trabalhar no Brasil, sou programador web, principalmente >> PHP ( eu sei eresia, peço desde já desculpa ) e serve este mail para >> perguntar se alguém conhece oportunidades por esses lados do oceano. >> >> Tenho preferência por projectos desafiantes como uol, terra ou ig mas >> estou aberto a qualquer oportunidade que possam conhecer. >> >> Para dar apenas uma ideia da minha experiência tenho 5 anos de experiência >> desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com alguns pequenos >> projectos em perl/asp 4 ( the old one ). >> >> Alguma experiência de desenvolvimento javascript ( conhecimento mais >> profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous >> ). >> >> Desde já agradeço a atenção e desculpem a eresia deste mail ;) >> >> -- >> Obrigado, >> >> Diogo Neves >> Web Developer @ SAPO.pt >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > > > > -- > Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [ > www.flickr.com/photos/alexeiz] > «Only love / Can bring the rain / That makes you yearn to the sky» > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Thanks, Diogo Neves Web Developer @ SAPO.pt by PrimeIT.pt -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Fri Jan 7 04:38:40 2011 From: blabos em gmail.com (Blabos de Blebe) Date: Fri, 7 Jan 2011 10:38:40 -0200 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: Bem Vindo!!! Na pior das hipóteses você vai aprender um montão de piadas novas :) Abraços 2011/1/7 Diogo Neves : > Tem razão, não sei se nas regras novas foi abulido mas realmente eu não > estava a tentar seguir regras novas, foi mesmo um erro da minha parte. > Eu não estou a mudar de pais por uma razão de achar que ai se vive melhor ou > se ganha mais mas por querer ter uma experiência num pais diferente e com > uma cultura bastante diferente da portuguesa. > Para mim como apaixonado pelo brasil e como sendo um pais com a mesma lingua > seria um pais naturalmente mais propício. > > 2011/1/7 Alexei Znamensky >> >> Bem vindo!! >> Não era "heresia" ? ou o 'h' foi abolido pelas 'novas regras' da gramática >> também? :-O >> Diogo, estranhamente, as pessoas daqui estão tentando ir para a Europa, >> mas até aí, a grama é sempre mais verde do lado do vizinho. >> []s, >> Alexei >> >> 2011/1/6 Diogo Neves >>> >>> Boa noite a todos, >>> >>> Sou português e neste momento em que estou a passar por uma mudança na >>> minha vida gostaria de aproveitar esta mudança para concretizar algo que já >>> gostava de fazer à alguns anos e mudar mais um pouco. >>> >>> Eu gostaria de trabalhar no Brasil, sou programador web, principalmente >>> PHP ( eu sei eresia, peço desde já desculpa ) e serve este mail para >>> perguntar se alguém conhece oportunidades por esses lados do oceano. >>> >>> Tenho preferência por projectos desafiantes como uol, terra ou ig mas >>> estou aberto a qualquer oportunidade que possam conhecer. >>> >>> Para dar apenas uma ideia da minha experiência tenho 5 anos de >>> experiência desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com >>> alguns pequenos projectos em perl/asp 4 ( the old one ). >>> >>> Alguma experiência de desenvolvimento javascript ( conhecimento mais >>> profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous >>> ). >>> >>> Desde já agradeço a atenção e desculpem a eresia deste mail ;) >>> >>> -- >>> Obrigado, >>> >>> Diogo Neves >>> Web Developer @ SAPO.pt >>> >>> _______________________________________________ >>> Cascavel-pm mailing list >>> Cascavel-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >> >> >> -- >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] >> [www.flickr.com/photos/alexeiz] >> «Only love / Can bring the rain / That makes you yearn to the sky» >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > -- > Thanks, > > Diogo Neves > Web Developer @ SAPO.pt by PrimeIT.pt > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From renato.cron em gmail.com Fri Jan 7 04:47:58 2011 From: renato.cron em gmail.com (Renato Santos) Date: Fri, 7 Jan 2011 10:47:58 -0200 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: Haha, ou a gente neh! 2011/1/7 Blabos de Blebe > Bem Vindo!!! > > Na pior das hipóteses você vai aprender um montão de piadas novas :) > > Abraços > > 2011/1/7 Diogo Neves : > > Tem razão, não sei se nas regras novas foi abulido mas realmente eu não > > estava a tentar seguir regras novas, foi mesmo um erro da minha parte. > > Eu não estou a mudar de pais por uma razão de achar que ai se vive melhor > ou > > se ganha mais mas por querer ter uma experiência num pais diferente e com > > uma cultura bastante diferente da portuguesa. > > Para mim como apaixonado pelo brasil e como sendo um pais com a mesma > lingua > > seria um pais naturalmente mais propício. > > > > 2011/1/7 Alexei Znamensky > >> > >> Bem vindo!! > >> Não era "heresia" ? ou o 'h' foi abolido pelas 'novas regras' da > gramática > >> também? :-O > >> Diogo, estranhamente, as pessoas daqui estão tentando ir para a Europa, > >> mas até aí, a grama é sempre mais verde do lado do vizinho. > >> []s, > >> Alexei > >> > >> 2011/1/6 Diogo Neves > >>> > >>> Boa noite a todos, > >>> > >>> Sou português e neste momento em que estou a passar por uma mudança na > >>> minha vida gostaria de aproveitar esta mudança para concretizar algo > que já > >>> gostava de fazer à alguns anos e mudar mais um pouco. > >>> > >>> Eu gostaria de trabalhar no Brasil, sou programador web, principalmente > >>> PHP ( eu sei eresia, peço desde já desculpa ) e serve este mail para > >>> perguntar se alguém conhece oportunidades por esses lados do oceano. > >>> > >>> Tenho preferência por projectos desafiantes como uol, terra ou ig mas > >>> estou aberto a qualquer oportunidade que possam conhecer. > >>> > >>> Para dar apenas uma ideia da minha experiência tenho 5 anos de > >>> experiência desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) > com > >>> alguns pequenos projectos em perl/asp 4 ( the old one ). > >>> > >>> Alguma experiência de desenvolvimento javascript ( conhecimento mais > >>> profundo no que a jquery diz respeito, mas já usei > prototype/scriptaculous > >>> ). > >>> > >>> Desde já agradeço a atenção e desculpem a eresia deste mail ;) > >>> > >>> -- > >>> Obrigado, > >>> > >>> Diogo Neves > >>> Web Developer @ SAPO.pt > >>> > >>> _______________________________________________ > >>> Cascavel-pm mailing list > >>> Cascavel-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > >> > >> > >> -- > >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] > >> [www.flickr.com/photos/alexeiz] > >> «Only love / Can bring the rain / That makes you yearn to the sky» > >> > >> _______________________________________________ > >> Cascavel-pm mailing list > >> Cascavel-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > -- > > Thanks, > > > > Diogo Neves > > Web Developer @ SAPO.pt by PrimeIT.pt > > > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Renato Santos http://www.renatocron.com/blog/ -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From nelio.nunes em sapo.pt Fri Jan 7 08:24:55 2011 From: nelio.nunes em sapo.pt (=?iso-8859-1?Q?N=E9lio_Nunes?=) Date: Fri, 7 Jan 2011 16:24:55 +0000 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: <73F68275-2075-46AE-8187-FF51890B4DC9@sapo.pt> Consta que a cerveja desse lado é bem melhor que a nossa (entre outras coisas) Então estás cansado cá da terra, é? :) On 2011/01/07, at 11:13, Diogo Neves wrote: > Tem razão, não sei se nas regras novas foi abulido mas realmente eu não estava a tentar seguir regras novas, foi mesmo um erro da minha parte. > Eu não estou a mudar de pais por uma razão de achar que ai se vive melhor ou se ganha mais mas por querer ter uma experiência num pais diferente e com uma cultura bastante diferente da portuguesa. > Para mim como apaixonado pelo brasil e como sendo um pais com a mesma lingua seria um pais naturalmente mais propício. > > 2011/1/7 Alexei Znamensky > Bem vindo!! > > Não era "heresia" ? ou o 'h' foi abolido pelas 'novas regras' da gramática também? :-O > > Diogo, estranhamente, as pessoas daqui estão tentando ir para a Europa, mas até aí, a grama é sempre mais verde do lado do vizinho. > > []s, > Alexei > > 2011/1/6 Diogo Neves > Boa noite a todos, > > Sou português e neste momento em que estou a passar por uma mudança na minha vida gostaria de aproveitar esta mudança para concretizar algo que já gostava de fazer à alguns anos e mudar mais um pouco. > > Eu gostaria de trabalhar no Brasil, sou programador web, principalmente PHP ( eu sei eresia, peço desde já desculpa ) e serve este mail para perguntar se alguém conhece oportunidades por esses lados do oceano. > > Tenho preferência por projectos desafiantes como uol, terra ou ig mas estou aberto a qualquer oportunidade que possam conhecer. > > Para dar apenas uma ideia da minha experiência tenho 5 anos de experiência desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com alguns pequenos projectos em perl/asp 4 ( the old one ). > > Alguma experiência de desenvolvimento javascript ( conhecimento mais profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous ). > > Desde já agradeço a atenção e desculpem a eresia deste mail ;) > > -- > Obrigado, > > Diogo Neves > Web Developer @ SAPO.pt > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > -- > Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [www.flickr.com/photos/alexeiz] > «Only love / Can bring the rain / That makes you yearn to the sky» > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > -- > Thanks, > > Diogo Neves > Web Developer @ SAPO.pt by PrimeIT.pt > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From leonardo.ruoso em gmail.com Sun Jan 9 03:21:38 2011 From: leonardo.ruoso em gmail.com (Leonardo Ruoso) Date: Sun, 9 Jan 2011 08:21:38 -0300 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: Eu recomendo delimitar um pouco mais o espaço geográfico, como a cidade em que está a fixar residência e a procurar trabalho! Minha experiência: Tenho me surpreendido com o quanto parece mais fácil participar de um processo seletivo para uma empresa que fica em uma cidade de outro país do que em outra cidade no próprio Brasil. Isso pode até explicar a razão de tanta gente acabar indo para fora, já que parece ser mais fácil ser contratado à distância para o exterior do que dentro do Brasil. É impressionante como os processos de recrutamento e seleção no Brasil esperam que os candidatos estejam disponíveis para uma entrevista presencial em dois dias como passo seguinte depois da análise de currículo, como se viajar de uma região a outra do país fosse o mesmo que tomar o metrô, como se os candidatos estivessem disponíveis a qualquer esforço para conseguir uma vaga. Outro dia perguntei num processo seletivo de uma grande empresa se poderia haver uma pré-entrevista por telefone para que eu pudesse avaliar minha ida ou não até a entrevista, pois não gostaria de gastar mil reais com passagens apenas para fazer número, e a pessoa disse que não teria como adicionar "este passo" ao processo, nem mesmo o salário queria me dizer antes de comparecer à entrevista. Pode? Como tenho compromissos agendados para o dia da entrevista e estamos em alta estação, não vou participar do processo, mas será que a empresa está desperdiçando talentos dessa forma? Atenciosamente, Leonardo Ruoso (CE1921JP) · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · leonardo em ruoso.com · (11) 3522-9612 · (85) 8787-0312 http://leonardo.ruoso.com · http://twitter.com/LeonardoRuoso · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · *Leonardo Ruoso *· * *Gerente de Projetos · Analista de Sistemas Comunicação Social/Jornalismo - UFC/2006 · Telecomunicações - ETFCE/1998 *Internet e inovação tecnológica deste 1996* · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 2011/1/6 Diogo Neves > Boa noite a todos, > > Sou português e neste momento em que estou a passar por uma mudança na > minha vida gostaria de aproveitar esta mudança para concretizar algo que já > gostava de fazer à alguns anos e mudar mais um pouco. > > Eu gostaria de trabalhar no Brasil, sou programador web, principalmente PHP > ( eu sei eresia, peço desde já desculpa ) e serve este mail para perguntar > se alguém conhece oportunidades por esses lados do oceano. > > Tenho preferência por projectos desafiantes como uol, terra ou ig mas estou > aberto a qualquer oportunidade que possam conhecer. > > Para dar apenas uma ideia da minha experiência tenho 5 anos de experiência > desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com alguns pequenos > projectos em perl/asp 4 ( the old one ). > > Alguma experiência de desenvolvimento javascript ( conhecimento mais > profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous > ). > > Desde já agradeço a atenção e desculpem a eresia deste mail ;) > > -- > Obrigado, > > Diogo Neves > Web Developer @ SAPO.pt > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From acid06 em gmail.com Sun Jan 9 05:34:20 2011 From: acid06 em gmail.com (Nilson Santos Figueiredo Jr.) Date: Sun, 9 Jan 2011 11:34:20 -0200 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: 2011/1/9 Leonardo Ruoso : > Outro dia perguntei num processo seletivo de uma grande empresa se poderia > haver uma pré-entrevista por telefone para que eu pudesse avaliar minha ida > ou não até a entrevista, pois não gostaria de gastar mil reais com passagens > apenas para fazer número, e a pessoa disse que não teria como adicionar > "este passo" ao processo, nem mesmo o salário queria me dizer antes de > comparecer à entrevista. O que eu considero pior de tudo é essa mania do mercado brasileiro de ficar "escondendo" o salário. Às vezes, você só fica sabendo no último minuto e fica aquela sensação de tempo perdido... -Nilson From nelio.nunes em sapo.pt Sun Jan 9 17:37:46 2011 From: nelio.nunes em sapo.pt (=?iso-8859-1?Q?N=E9lio_Nunes?=) Date: Mon, 10 Jan 2011 01:37:46 +0000 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: <529B10B7-CDEF-4F5A-894C-1AC2B1FF4AFE@sapo.pt> Não é só no Brasil, aqui em Portugal o normal sempre é dizer "remuneração compatível com a experiência demonstrada"... On 2011/01/09, at 13:34, Nilson Santos Figueiredo Jr. wrote: > O que eu considero pior de tudo é essa mania do mercado brasileiro de > ficar "escondendo" o salário. > Às vezes, você só fica sabendo no último minuto e fica aquela sensação > de tempo perdido... From mdacwb em gmail.com Mon Jan 10 00:20:08 2011 From: mdacwb em gmail.com (Marco A P D'Andrade) Date: Mon, 10 Jan 2011 06:20:08 -0200 Subject: [Cascavel-pm] Procuro oportunidade no Brasil In-Reply-To: References: Message-ID: A maioria das grandes empresas hoje está utilizando-se de consultorias de RH, mais um passo para a terceirização total ;) Como alguns por aqui já sabem, eu estou a varios anos aguardando uma oportunidade para trilhar o caminho inverso (voltar às minhas origens), e só agora consegui marcar uma entrevista presencial, mas depois de literalmente abrir o jogo... "Me interesso por esta empresa, e estarei em ferias durante a proxima semana na cidade"... Consegui a entrevista, mas temo que a urgência de passar para a proxima fase (agora uma segunda entrevista) tenha atrapalhado o processo... Coisas de contratação! Talvez um excesso de zelo... querem ter certeza de que não irão se arrepender da contratação! Como se diz... o ótimo é inimigo do bom! T+ 2011/1/9 Leonardo Ruoso > Eu recomendo delimitar um pouco mais o espaço geográfico, como a cidade em > que está a fixar residência e a procurar trabalho! > > Minha experiência: > > Tenho me surpreendido com o quanto parece mais fácil participar de um > processo seletivo para uma empresa que fica em uma cidade de outro país do > que em outra cidade no próprio Brasil. Isso pode até explicar a razão de > tanta gente acabar indo para fora, já que parece ser mais fácil ser > contratado à distância para o exterior do que dentro do Brasil. > > É impressionante como os processos de recrutamento e seleção no Brasil > esperam que os candidatos estejam disponíveis para uma entrevista presencial > em dois dias como passo seguinte depois da análise de currículo, como se > viajar de uma região a outra do país fosse o mesmo que tomar o metrô, como > se os candidatos estivessem disponíveis a qualquer esforço para conseguir > uma vaga. > > Outro dia perguntei num processo seletivo de uma grande empresa se poderia > haver uma pré-entrevista por telefone para que eu pudesse avaliar minha ida > ou não até a entrevista, pois não gostaria de gastar mil reais com passagens > apenas para fazer número, e a pessoa disse que não teria como adicionar > "este passo" ao processo, nem mesmo o salário queria me dizer antes de > comparecer à entrevista. > > Pode? Como tenho compromissos agendados para o dia da entrevista e estamos > em alta estação, não vou participar do processo, mas será que a empresa está > desperdiçando talentos dessa forma? > > > Atenciosamente, > > Leonardo Ruoso (CE1921JP) > · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · > · · · · · · · · · · · · · · · · · · · · · · · · · · · > leonardo em ruoso.com · (11) 3522-9612 · (85) 8787-0312 > http://leonardo.ruoso.com · http://twitter.com/LeonardoRuoso > · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · > · · · · · · · · · · · · · · · · · · · · · · · · · · · · > *Leonardo Ruoso *· * *Gerente de Projetos · Analista de Sistemas > Comunicação Social/Jornalismo - UFC/2006 · Telecomunicações - ETFCE/1998 > *Internet e inovação tecnológica deste 1996* > · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · > · · · · · · · · · · · · · · · · · · · · · · · · · · · · > > > 2011/1/6 Diogo Neves > >> Boa noite a todos, >> >> >> Sou português e neste momento em que estou a passar por uma mudança na >> minha vida gostaria de aproveitar esta mudança para concretizar algo que já >> gostava de fazer à alguns anos e mudar mais um pouco. >> >> Eu gostaria de trabalhar no Brasil, sou programador web, principalmente >> PHP ( eu sei eresia, peço desde já desculpa ) e serve este mail para >> perguntar se alguém conhece oportunidades por esses lados do oceano. >> >> Tenho preferência por projectos desafiantes como uol, terra ou ig mas >> estou aberto a qualquer oportunidade que possam conhecer. >> >> Para dar apenas uma ideia da minha experiência tenho 5 anos de experiência >> desenvolvimento web, maioritariamente PHP/MySQL ( LAMP ) com alguns pequenos >> projectos em perl/asp 4 ( the old one ). >> >> Alguma experiência de desenvolvimento javascript ( conhecimento mais >> profundo no que a jquery diz respeito, mas já usei prototype/scriptaculous >> ). >> >> Desde já agradeço a atenção e desculpem a eresia deste mail ;) >> >> -- >> Obrigado, >> >> Diogo Neves >> Web Developer @ SAPO.pt >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From mdacwb em gmail.com Mon Jan 10 00:30:50 2011 From: mdacwb em gmail.com (Marco A P D'Andrade) Date: Mon, 10 Jan 2011 06:30:50 -0200 Subject: [Cascavel-pm] Socket In-Reply-To: <2540397751F544C281EE56B180330FCE@NBPROGRESS> References: <2540397751F544C281EE56B180330FCE@NBPROGRESS> Message-ID: Dependendo de sua necessidade, valerá mais a pena seguir a sugestão do Alexei... Mas como vc citou o caminho do "fazer com as proprias mãos", sugiro entender as funções abaixo: - sysread do modulo SOAP::Transport::TCP::Client - handle do módulo SOAP::Transport::TCP::Server Ambos na URL: http://cpansearch.perl.org/src/MKUTTER/SOAP-Lite-0.712/lib/SOAP/Transport/TCP.pm Eu utilizei muito isto por volta de 2003, mas estou meio enferrujado. Se não me engano a função select retornava o filehandle que teria algo para ler ou escrever. Mas estou sem acesso ao código em que eu trabalhei no momento. A grosso modo, a sensação de travamento é pelo fato de entrar em uma leitura em modo blocking, sem ter nada a receber. Em resumo. Quando você usa o codigo "$data = <$new_sock>;", ficará aguardando alguma informação, mas com buffer vazio, este aguardo será infinito. Meus 2 minutos ;) Marco Antonio Em 18 de dezembro de 2010 10:09, Agnaldo Macedo < agnaldo em starweb-software.com.br> escreveu: > > Olá pessoal. > > Tenho uma programa que recebe conexões via scoket (o código esta abaixo). > Meu problema é que nesse ponto > print "Aguardando ..."; > my $new_sock = $sock->accept(); > print "Processando ..."; > my $data = ''; > $data = <$new_sock>; > print "Dados recebidos ..."; > às vezes, por motivo de "alguma coisa" no client que faz a conexão, ele > trava. > Eu fico com e mensagem de "Processando ..." na tela. > Ou seja, na instrução > $data = <$new_sock>; > ele fica lendo, lendo, lendo e não chega ao final. > Não sei se é falta de algum "byte" finalizado da mensagem, ou se apenas > problema de time out e ele fica esperando. > Teria algo que eu pudesse "quebrar" a conexão e seguir adiante, sem ficar > preso ali. > > > > use warnings; > use strict; > use IO::Socket; > > $| = 1; > > my $sock = IO::Socket::INET->new (LocalPort => 8010, Type => SOCK_STREAM, > timeout => 120, Proto => 'tcp', Listen => 50); > unless ($sock) { die "Servidor não pode ser criado" } > print "Servidor iniciado\n"; > > my $continua = 'SIM'; > while ($continua eq 'SIM') > { > print "Aguardando ..."; > my $new_sock = $sock->accept(); > print "Processando ..."; > my $data = ''; > $data = <$new_sock>; > print "Dados recebidos ..."; > > if ($data) > { > print "Dados disponiveis ...\n"; > } > else > { > print "Nada a processar!\n"; > } > close ($new_sock); > } > close($sock); > exit(0); > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From capmostarda em gmail.com Wed Jan 19 21:13:05 2011 From: capmostarda em gmail.com (Tom Mostard) Date: Thu, 20 Jan 2011 02:13:05 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= Message-ID: Olá, pessoal! Estou tendo um problema de memória com scripts em Perl. Alguém aí teve algum problema parecido? Tenho um "pequeno" sistema que precisa executar vários scripts Perl em paralelo. Então existe um script Perl "chefe" que fica responsável por executar eles com parâmetros diferentes usando system(). O sistema acessa vários bancos de dados e a depender do banco, da tabela e do campo ele executa um módulo específico. Uso o MySQL em outra máquina para não abusar da memória. Script-chefe: while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto são 60 { system( './script.pl $parametro1 > /dev/null & ' ); } Dentro do script é carregado um módulo usando require assim: require $ARGV[ 0 ].".pm"; Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB de memória. Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo sistema. Me parece que cada script carregado usa 8 MB em média. (Isso é possível/normal?) Quando uso 60, nem todos os scripts são executados. Existe alguma maneira de executar um script otimizando o uso de memória ou vou ter que reavaliar o código? Já revisei o código e eliminei arrays, variáveis de conexões com bancos desnecessárias. Existe algo mais que eu possa fazer? Abraços, Tom -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Thu Jan 20 02:12:24 2011 From: renato.cron em gmail.com (Renato Santos) Date: Thu, 20 Jan 2011 08:12:24 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Quando você faz system, quando o filho acaba, a memoria é liberada, se o código perl é só esse, não vai fazer estouro de ram... 2011/1/20 Tom Mostard > Olá, pessoal! > > Estou tendo um problema de memória com scripts em Perl. > Alguém aí teve algum problema parecido? > > Tenho um "pequeno" sistema que precisa executar vários scripts Perl em > paralelo. > Então existe um script Perl "chefe" que fica responsável por executar eles > com parâmetros diferentes usando system(). > > O sistema acessa vários bancos de dados e a depender do banco, da tabela e > do campo ele executa um módulo específico. > Uso o MySQL em outra máquina para não abusar da memória. > > Script-chefe: > > while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto > são 60 > { > system( './script.pl $parametro1 > /dev/null & ' ); > } > > Dentro do script é carregado um módulo usando require assim: > > require $ARGV[ 0 ].".pm"; > > Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB > de memória. > Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > sistema. > Me parece que cada script carregado usa 8 MB em média. (Isso é > possível/normal?) > Quando uso 60, nem todos os scripts são executados. > Existe alguma maneira de executar um script otimizando o uso de memória ou > vou ter que reavaliar o código? > Já revisei o código e eliminei arrays, variáveis de conexões com bancos > desnecessárias. > Existe algo mais que eu possa fazer? > > Abraços, > > Tom > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Renato Santos http://www.renatocron.com/blog/ -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From andregarciacarneiro em gmail.com Thu Jan 20 02:35:34 2011 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Thu, 20 Jan 2011 08:35:34 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: 2011/1/20 Tom Mostard > Olá, pessoal! > > Estou tendo um problema de memória com scripts em Perl. > Alguém aí teve algum problema parecido? > > Tenho um "pequeno" sistema que precisa executar vários scripts Perl em > paralelo. > Então existe um script Perl "chefe" que fica responsável por executar eles > com parâmetros diferentes usando system(). > > O sistema acessa vários bancos de dados e a depender do banco, da tabela e > do campo ele executa um módulo específico. > Uso o MySQL em outra máquina para não abusar da memória. > > Script-chefe: > > while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto > são 60 > { > system( './script.pl $parametro1 > /dev/null & ' ); > } > > Dentro do script é carregado um módulo usando require assim: > > require $ARGV[ 0 ].".pm"; > > Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB > de memória. > Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > sistema. > Me parece que cada script carregado usa 8 MB em média. (Isso é > possível/normal?) > Quando uso 60, nem todos os scripts são executados. > Existe alguma maneira de executar um script otimizando o uso de memória ou > vou ter que reavaliar o código? > Já revisei o código e eliminei arrays, variáveis de conexões com bancos > desnecessárias. > Existe algo mais que eu possa fazer? > Essa fica difícil responder sem olhar código. > > Abraços, > > Tom > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- André Garcia Carneiro Analista/Desenvolvedor Perl (11)82907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From lorn.br em gmail.com Thu Jan 20 04:04:02 2011 From: lorn.br em gmail.com (Lindolfo Lorn Rodrigues) Date: Thu, 20 Jan 2011 10:04:02 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Cara, usar system não é uma boa pratica para cada chamada no system ele vai carregar um bash para tratar o STDOUT que você manda para o /dev/null, eu recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e você pode construir seu system dentro dele, e ele seria o seu "script chefe" porque ele foi feito para isso. E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei ele, eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu problema e mudei um pouco com o meu programa e etc. No seu caso parece que você que gerenciar processos http://poe.perl.org/?POE_Cookbook/Child_Component. Minha principal dica é, não use system faça seus programas Perl conversarem com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você caso tenha alguma duvida pergunte ai, flw. 2011/1/20 Tom Mostard > Olá, pessoal! > > Estou tendo um problema de memória com scripts em Perl. > Alguém aí teve algum problema parecido? > > Tenho um "pequeno" sistema que precisa executar vários scripts Perl em > paralelo. > Então existe um script Perl "chefe" que fica responsável por executar eles > com parâmetros diferentes usando system(). > > O sistema acessa vários bancos de dados e a depender do banco, da tabela e > do campo ele executa um módulo específico. > Uso o MySQL em outra máquina para não abusar da memória. > > Script-chefe: > > while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto > são 60 > { > system( './script.pl $parametro1 > /dev/null & ' ); > } > > Dentro do script é carregado um módulo usando require assim: > > require $ARGV[ 0 ].".pm"; > > Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB > de memória. > Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > sistema. > Me parece que cada script carregado usa 8 MB em média. (Isso é > possível/normal?) > Quando uso 60, nem todos os scripts são executados. > Existe alguma maneira de executar um script otimizando o uso de memória ou > vou ter que reavaliar o código? > Já revisei o código e eliminei arrays, variáveis de conexões com bancos > desnecessárias. > Existe algo mais que eu possa fazer? > > Abraços, > > Tom > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- lorn at lornlab dot org Lindolfo "Lorn" Rodrigues -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Thu Jan 20 04:20:16 2011 From: blabos em gmail.com (Blabos de Blebe) Date: Thu, 20 Jan 2011 10:20:16 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Não foi o que você perguntou, mas considere: foo.pl: #!/usr/bin/perl print $ARGV[0], $/; `sleep 5`; ___ perl -E 'while($i++ < 10){system("./foo.pl", $i)}' perldoc -f system: Does exactly the same thing as exec LIST , except that a fork is done first, and the parent process waits for the child process to exit. Então não tem chamada parelela nenhuma acontecendo. Abraços 2011/1/20 Lindolfo Lorn Rodrigues : > Cara, usar system não é uma boa pratica para cada chamada no system ele vai > carregar um bash para tratar o STDOUT que você manda para o /dev/null, eu > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e você > pode construir seu system dentro dele, e ele seria o seu "script chefe" > porque ele foi feito para isso. > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei ele, > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu > problema e mudei um pouco com o meu programa e etc. No seu caso parece que > você que gerenciar > processos http://poe.perl.org/?POE_Cookbook/Child_Component. > Minha principal dica é, não use system faça seus programas Perl conversarem > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você > caso tenha alguma duvida pergunte ai, flw. > 2011/1/20 Tom Mostard >> >> Olá, pessoal! >> >> Estou tendo um problema de memória com scripts em Perl. >> Alguém aí teve algum problema parecido? >> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em >> paralelo. >> Então existe um script Perl "chefe" que fica responsável por executar eles >> com parâmetros diferentes usando system(). >> >> O sistema acessa vários bancos de dados e a depender do banco, da tabela e >> do campo ele executa um módulo específico. >> Uso o MySQL em outra máquina para não abusar da memória. >> >> Script-chefe: >> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto >> são 60 >> { >>     system( './script.pl $parametro1 > /dev/null & ' ); >> } >> >> Dentro do script é carregado um módulo usando require assim: >> >> require $ARGV[ 0 ].".pm"; >> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB >> de memória. >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo >> sistema. >> Me parece que cada script carregado usa 8 MB em média. (Isso é >> possível/normal?) >> Quando uso 60, nem todos os scripts são executados. >> Existe alguma maneira de executar um script otimizando o uso de memória ou >> vou ter que reavaliar o código? >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos >> desnecessárias. >> Existe algo mais que eu possa fazer? >> >> Abraços, >> >> Tom >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > -- > lorn at lornlab dot org > Lindolfo "Lorn" Rodrigues > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From russoz em gmail.com Thu Jan 20 04:24:02 2011 From: russoz em gmail.com (Alexei Znamensky) Date: Thu, 20 Jan 2011 10:24:02 -0200 Subject: [Cascavel-pm] =?utf-8?b?UGVybCBYIFJBTSAobWVtw7NyaWEp?= In-Reply-To: References: Message-ID: Blabos 2011/1/20 Blabos de Blebe > Não foi o que você perguntou, mas considere: > > foo.pl: > #!/usr/bin/perl > > print $ARGV[0], $/; > `sleep 5`; > aspas invertidas?? WTF? perldoc -f sleep > ___ > > perl -E 'while($i++ < 10){system("./foo.pl", $i)}' > > perldoc -f system: > Does exactly the same thing as exec LIST , except that a fork is done > first, and the parent process waits for the child process to exit. > > > Então não tem chamada parelela nenhuma acontecendo. > > Abraços > > 2011/1/20 Lindolfo Lorn Rodrigues : > > Cara, usar system não é uma boa pratica para cada chamada no system ele > vai > > carregar um bash para tratar o STDOUT que você manda para o /dev/null, eu > > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e > você > > pode construir seu system dentro dele, e ele seria o seu "script chefe" > > porque ele foi feito para isso. > > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei > ele, > > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu > > problema e mudei um pouco com o meu programa e etc. No seu caso parece > que > > você que gerenciar > > processos http://poe.perl.org/?POE_Cookbook/Child_Component. > > Minha principal dica é, não use system faça seus programas Perl > conversarem > > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você > > caso tenha alguma duvida pergunte ai, flw. > > 2011/1/20 Tom Mostard > >> > >> Olá, pessoal! > >> > >> Estou tendo um problema de memória com scripts em Perl. > >> Alguém aí teve algum problema parecido? > >> > >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em > >> paralelo. > >> Então existe um script Perl "chefe" que fica responsável por executar > eles > >> com parâmetros diferentes usando system(). > >> > >> O sistema acessa vários bancos de dados e a depender do banco, da tabela > e > >> do campo ele executa um módulo específico. > >> Uso o MySQL em outra máquina para não abusar da memória. > >> > >> Script-chefe: > >> > >> while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto > >> são 60 > >> { > >> system( './script.pl $parametro1 > /dev/null & ' ); > >> } > >> > >> Dentro do script é carregado um módulo usando require assim: > >> > >> require $ARGV[ 0 ].".pm"; > >> > >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 > MB > >> de memória. > >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > >> sistema. > >> Me parece que cada script carregado usa 8 MB em média. (Isso é > >> possível/normal?) > >> Quando uso 60, nem todos os scripts são executados. > >> Existe alguma maneira de executar um script otimizando o uso de memória > ou > >> vou ter que reavaliar o código? > >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos > >> desnecessárias. > >> Existe algo mais que eu possa fazer? > >> > >> Abraços, > >> > >> Tom > >> > >> _______________________________________________ > >> Cascavel-pm mailing list > >> Cascavel-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > > > > > -- > > lorn at lornlab dot org > > Lindolfo "Lorn" Rodrigues > > > > > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [ www.flickr.com/photos/alexeiz] «Only love / Can bring the rain / That makes you yearn to the sky» -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Thu Jan 20 04:28:38 2011 From: blabos em gmail.com (Blabos de Blebe) Date: Thu, 20 Jan 2011 10:28:38 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Puta merda! Não é que se a gente não tomar cuidado bizonhice pega! Aff... 2011/1/20 Alexei Znamensky : > Blabos > > 2011/1/20 Blabos de Blebe >> >> Não foi o que você perguntou, mas considere: >> >> foo.pl: >> #!/usr/bin/perl >> >> print $ARGV[0], $/; >> `sleep 5`; > > aspas invertidas?? WTF? > perldoc -f sleep > >> >> ___ >> >> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' >> >> perldoc -f system: >> Does exactly the same thing as exec LIST , except that a fork is done >> first, and the parent process waits for the child process to exit. >> >> >> Então não tem chamada parelela nenhuma acontecendo. >> >> Abraços >> >> 2011/1/20 Lindolfo Lorn Rodrigues : >> > Cara, usar system não é uma boa pratica para cada chamada no system ele >> > vai >> > carregar um bash para tratar o STDOUT que você manda para o /dev/null, >> > eu >> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e >> > você >> > pode construir seu system dentro dele, e ele seria o seu "script chefe" >> > porque ele foi feito para isso. >> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei >> > ele, >> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu >> > problema e mudei um pouco com o meu programa e etc. No seu caso parece >> > que >> > você que gerenciar >> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. >> > Minha principal dica é, não use system faça seus programas Perl >> > conversarem >> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você >> > caso tenha alguma duvida pergunte ai, flw. >> > 2011/1/20 Tom Mostard >> >> >> >> Olá, pessoal! >> >> >> >> Estou tendo um problema de memória com scripts em Perl. >> >> Alguém aí teve algum problema parecido? >> >> >> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em >> >> paralelo. >> >> Então existe um script Perl "chefe" que fica responsável por executar >> >> eles >> >> com parâmetros diferentes usando system(). >> >> >> >> O sistema acessa vários bancos de dados e a depender do banco, da >> >> tabela e >> >> do campo ele executa um módulo específico. >> >> Uso o MySQL em outra máquina para não abusar da memória. >> >> >> >> Script-chefe: >> >> >> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por >> >> enquanto >> >> são 60 >> >> { >> >>     system( './script.pl $parametro1 > /dev/null & ' ); >> >> } >> >> >> >> Dentro do script é carregado um módulo usando require assim: >> >> >> >> require $ARGV[ 0 ].".pm"; >> >> >> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 >> >> MB >> >> de memória. >> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo >> >> sistema. >> >> Me parece que cada script carregado usa 8 MB em média. (Isso é >> >> possível/normal?) >> >> Quando uso 60, nem todos os scripts são executados. >> >> Existe alguma maneira de executar um script otimizando o uso de memória >> >> ou >> >> vou ter que reavaliar o código? >> >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos >> >> desnecessárias. >> >> Existe algo mais que eu possa fazer? >> >> >> >> Abraços, >> >> >> >> Tom >> >> >> >> _______________________________________________ >> >> Cascavel-pm mailing list >> >> Cascavel-pm em pm.org >> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > >> > >> > >> > -- >> > lorn at lornlab dot org >> > Lindolfo "Lorn" Rodrigues >> > >> > >> > _______________________________________________ >> > Cascavel-pm mailing list >> > Cascavel-pm em pm.org >> > http://mail.pm.org/mailman/listinfo/cascavel-pm >> > >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm > > > > -- > Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] > [www.flickr.com/photos/alexeiz] > «Only love / Can bring the rain / That makes you yearn to the sky» > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From blabos em gmail.com Thu Jan 20 04:34:25 2011 From: blabos em gmail.com (Blabos de Blebe) Date: Thu, 20 Jan 2011 10:34:25 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Aliás aqui no trabalho, os backticks (aspas invertidas, ou crase) foram apelidados de black chicks... 2011/1/20 Blabos de Blebe : > Puta merda! > > Não é que se a gente não tomar cuidado bizonhice pega! > > Aff... > > 2011/1/20 Alexei Znamensky : >> Blabos >> >> 2011/1/20 Blabos de Blebe >>> >>> Não foi o que você perguntou, mas considere: >>> >>> foo.pl: >>> #!/usr/bin/perl >>> >>> print $ARGV[0], $/; >>> `sleep 5`; >> >> aspas invertidas?? WTF? >> perldoc -f sleep >> >>> >>> ___ >>> >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' >>> >>> perldoc -f system: >>> Does exactly the same thing as exec LIST , except that a fork is done >>> first, and the parent process waits for the child process to exit. >>> >>> >>> Então não tem chamada parelela nenhuma acontecendo. >>> >>> Abraços >>> >>> 2011/1/20 Lindolfo Lorn Rodrigues : >>> > Cara, usar system não é uma boa pratica para cada chamada no system ele >>> > vai >>> > carregar um bash para tratar o STDOUT que você manda para o /dev/null, >>> > eu >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e >>> > você >>> > pode construir seu system dentro dele, e ele seria o seu "script chefe" >>> > porque ele foi feito para isso. >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei >>> > ele, >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu >>> > problema e mudei um pouco com o meu programa e etc. No seu caso parece >>> > que >>> > você que gerenciar >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. >>> > Minha principal dica é, não use system faça seus programas Perl >>> > conversarem >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você >>> > caso tenha alguma duvida pergunte ai, flw. >>> > 2011/1/20 Tom Mostard >>> >> >>> >> Olá, pessoal! >>> >> >>> >> Estou tendo um problema de memória com scripts em Perl. >>> >> Alguém aí teve algum problema parecido? >>> >> >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em >>> >> paralelo. >>> >> Então existe um script Perl "chefe" que fica responsável por executar >>> >> eles >>> >> com parâmetros diferentes usando system(). >>> >> >>> >> O sistema acessa vários bancos de dados e a depender do banco, da >>> >> tabela e >>> >> do campo ele executa um módulo específico. >>> >> Uso o MySQL em outra máquina para não abusar da memória. >>> >> >>> >> Script-chefe: >>> >> >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por >>> >> enquanto >>> >> são 60 >>> >> { >>> >>     system( './script.pl $parametro1 > /dev/null & ' ); >>> >> } >>> >> >>> >> Dentro do script é carregado um módulo usando require assim: >>> >> >>> >> require $ARGV[ 0 ].".pm"; >>> >> >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 >>> >> MB >>> >> de memória. >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo >>> >> sistema. >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é >>> >> possível/normal?) >>> >> Quando uso 60, nem todos os scripts são executados. >>> >> Existe alguma maneira de executar um script otimizando o uso de memória >>> >> ou >>> >> vou ter que reavaliar o código? >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos >>> >> desnecessárias. >>> >> Existe algo mais que eu possa fazer? >>> >> >>> >> Abraços, >>> >> >>> >> Tom >>> >> >>> >> _______________________________________________ >>> >> Cascavel-pm mailing list >>> >> Cascavel-pm em pm.org >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >>> > >>> > >>> > >>> > -- >>> > lorn at lornlab dot org >>> > Lindolfo "Lorn" Rodrigues >>> > >>> > >>> > _______________________________________________ >>> > Cascavel-pm mailing list >>> > Cascavel-pm em pm.org >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm >>> > >>> _______________________________________________ >>> Cascavel-pm mailing list >>> Cascavel-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >> >> >> -- >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] >> [www.flickr.com/photos/alexeiz] >> «Only love / Can bring the rain / That makes you yearn to the sky» >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > From renato.cron em gmail.com Thu Jan 20 04:39:54 2011 From: renato.cron em gmail.com (Renato Santos) Date: Thu, 20 Jan 2011 10:39:54 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: aki é beque-stick 2011/1/20 Blabos de Blebe > Aliás aqui no trabalho, os backticks (aspas invertidas, ou crase) > foram apelidados de black chicks... > > 2011/1/20 Blabos de Blebe : > > Puta merda! > > > > Não é que se a gente não tomar cuidado bizonhice pega! > > > > Aff... > > > > 2011/1/20 Alexei Znamensky : > >> Blabos > >> > >> 2011/1/20 Blabos de Blebe > >>> > >>> Não foi o que você perguntou, mas considere: > >>> > >>> foo.pl: > >>> #!/usr/bin/perl > >>> > >>> print $ARGV[0], $/; > >>> `sleep 5`; > >> > >> aspas invertidas?? WTF? > >> perldoc -f sleep > >> > >>> > >>> ___ > >>> > >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' > >>> > >>> perldoc -f system: > >>> Does exactly the same thing as exec LIST , except that a fork is done > >>> first, and the parent process waits for the child process to exit. > >>> > >>> > >>> Então não tem chamada parelela nenhuma acontecendo. > >>> > >>> Abraços > >>> > >>> 2011/1/20 Lindolfo Lorn Rodrigues : > >>> > Cara, usar system não é uma boa pratica para cada chamada no system > ele > >>> > vai > >>> > carregar um bash para tratar o STDOUT que você manda para o > /dev/null, > >>> > eu > >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e > >>> > você > >>> > pode construir seu system dentro dele, e ele seria o seu "script > chefe" > >>> > porque ele foi feito para isso. > >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu > usei > >>> > ele, > >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o > meu > >>> > problema e mudei um pouco com o meu programa e etc. No seu caso > parece > >>> > que > >>> > você que gerenciar > >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. > >>> > Minha principal dica é, não use system faça seus programas Perl > >>> > conversarem > >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para > você > >>> > caso tenha alguma duvida pergunte ai, flw. > >>> > 2011/1/20 Tom Mostard > >>> >> > >>> >> Olá, pessoal! > >>> >> > >>> >> Estou tendo um problema de memória com scripts em Perl. > >>> >> Alguém aí teve algum problema parecido? > >>> >> > >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl > em > >>> >> paralelo. > >>> >> Então existe um script Perl "chefe" que fica responsável por > executar > >>> >> eles > >>> >> com parâmetros diferentes usando system(). > >>> >> > >>> >> O sistema acessa vários bancos de dados e a depender do banco, da > >>> >> tabela e > >>> >> do campo ele executa um módulo específico. > >>> >> Uso o MySQL em outra máquina para não abusar da memória. > >>> >> > >>> >> Script-chefe: > >>> >> > >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por > >>> >> enquanto > >>> >> são 60 > >>> >> { > >>> >> system( './script.pl $parametro1 > /dev/null & ' ); > >>> >> } > >>> >> > >>> >> Dentro do script é carregado um módulo usando require assim: > >>> >> > >>> >> require $ARGV[ 0 ].".pm"; > >>> >> > >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam > 158 > >>> >> MB > >>> >> de memória. > >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > >>> >> sistema. > >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é > >>> >> possível/normal?) > >>> >> Quando uso 60, nem todos os scripts são executados. > >>> >> Existe alguma maneira de executar um script otimizando o uso de > memória > >>> >> ou > >>> >> vou ter que reavaliar o código? > >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com > bancos > >>> >> desnecessárias. > >>> >> Existe algo mais que eu possa fazer? > >>> >> > >>> >> Abraços, > >>> >> > >>> >> Tom > >>> >> > >>> >> _______________________________________________ > >>> >> Cascavel-pm mailing list > >>> >> Cascavel-pm em pm.org > >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> > > >>> > > >>> > -- > >>> > lorn at lornlab dot org > >>> > Lindolfo "Lorn" Rodrigues > >>> > > >>> > > >>> > _______________________________________________ > >>> > Cascavel-pm mailing list > >>> > Cascavel-pm em pm.org > >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> _______________________________________________ > >>> Cascavel-pm mailing list > >>> Cascavel-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > >> > >> > >> -- > >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] > >> [www.flickr.com/photos/alexeiz] > >> «Only love / Can bring the rain / That makes you yearn to the sky» > >> > >> _______________________________________________ > >> Cascavel-pm mailing list > >> Cascavel-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Renato Santos http://www.renatocron.com/blog/ -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From gabiruh em gmail.com Thu Jan 20 04:40:42 2011 From: gabiruh em gmail.com (Gabriel Andrade) Date: Thu, 20 Jan 2011 09:40:42 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: <4A485DBA-73AE-4F1D-B593-8D2EA79AEBF2@gmail.com> "Não, cara! Essa escultura de cocô tá torta. Deixa eu ajeitar... Aí, bem melhor, não?" ...e a mão suja de bosta, depois da ajudinha. On Jan 20, 2011, at 9:28 AM, Blabos de Blebe wrote: > Puta merda! > > Não é que se a gente não tomar cuidado bizonhice pega! > > Aff... > > 2011/1/20 Alexei Znamensky : >> Blabos >> >> 2011/1/20 Blabos de Blebe >>> >>> Não foi o que você perguntou, mas considere: >>> >>> foo.pl: >>> #!/usr/bin/perl >>> >>> print $ARGV[0], $/; >>> `sleep 5`; >> >> aspas invertidas?? WTF? >> perldoc -f sleep >> >>> >>> ___ >>> >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' >>> >>> perldoc -f system: >>> Does exactly the same thing as exec LIST , except that a fork is done >>> first, and the parent process waits for the child process to exit. >>> >>> >>> Então não tem chamada parelela nenhuma acontecendo. >>> >>> Abraços From jasimioni em gmail.com Thu Jan 20 04:46:05 2011 From: jasimioni em gmail.com (=?ISO-8859-1?Q?Jo=E3o_Andr=E9_Simioni?=) Date: Thu, 20 Jan 2011 10:46:05 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Blabos, Ele está chamando o script.pl com & comercial no final - assim a Shell imediatamente coloca o processo em background e o system retorna imediatamente. Ele consegue os múltiplos processos paralelos. Mas para o sistema operacional, é como se tivesse executado cada um deles separadamente e por isso a quantidade de memória excessiva (não compartilham nenhuma matriz de dados, nem nada assim). []'s Joao Andre 2011/1/20 Blabos de Blebe : > Puta merda! > > Não é que se a gente não tomar cuidado bizonhice pega! > > Aff... > > 2011/1/20 Alexei Znamensky : >> Blabos >> >> 2011/1/20 Blabos de Blebe >>> >>> Não foi o que você perguntou, mas considere: >>> >>> foo.pl: >>> #!/usr/bin/perl >>> >>> print $ARGV[0], $/; >>> `sleep 5`; >> >> aspas invertidas?? WTF? >> perldoc -f sleep >> >>> >>> ___ >>> >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' >>> >>> perldoc -f system: >>> Does exactly the same thing as exec LIST , except that a fork is done >>> first, and the parent process waits for the child process to exit. >>> >>> >>> Então não tem chamada parelela nenhuma acontecendo. >>> >>> Abraços >>> >>> 2011/1/20 Lindolfo Lorn Rodrigues : >>> > Cara, usar system não é uma boa pratica para cada chamada no system ele >>> > vai >>> > carregar um bash para tratar o STDOUT que você manda para o /dev/null, >>> > eu >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e >>> > você >>> > pode construir seu system dentro dele, e ele seria o seu "script chefe" >>> > porque ele foi feito para isso. >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei >>> > ele, >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu >>> > problema e mudei um pouco com o meu programa e etc. No seu caso parece >>> > que >>> > você que gerenciar >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. >>> > Minha principal dica é, não use system faça seus programas Perl >>> > conversarem >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você >>> > caso tenha alguma duvida pergunte ai, flw. >>> > 2011/1/20 Tom Mostard >>> >> >>> >> Olá, pessoal! >>> >> >>> >> Estou tendo um problema de memória com scripts em Perl. >>> >> Alguém aí teve algum problema parecido? >>> >> >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em >>> >> paralelo. >>> >> Então existe um script Perl "chefe" que fica responsável por executar >>> >> eles >>> >> com parâmetros diferentes usando system(). >>> >> >>> >> O sistema acessa vários bancos de dados e a depender do banco, da >>> >> tabela e >>> >> do campo ele executa um módulo específico. >>> >> Uso o MySQL em outra máquina para não abusar da memória. >>> >> >>> >> Script-chefe: >>> >> >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por >>> >> enquanto >>> >> são 60 >>> >> { >>> >>     system( './script.pl $parametro1 > /dev/null & ' ); >>> >> } >>> >> >>> >> Dentro do script é carregado um módulo usando require assim: >>> >> >>> >> require $ARGV[ 0 ].".pm"; >>> >> >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 >>> >> MB >>> >> de memória. >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo >>> >> sistema. >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é >>> >> possível/normal?) >>> >> Quando uso 60, nem todos os scripts são executados. >>> >> Existe alguma maneira de executar um script otimizando o uso de memória >>> >> ou >>> >> vou ter que reavaliar o código? >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos >>> >> desnecessárias. >>> >> Existe algo mais que eu possa fazer? >>> >> >>> >> Abraços, >>> >> >>> >> Tom >>> >> >>> >> _______________________________________________ >>> >> Cascavel-pm mailing list >>> >> Cascavel-pm em pm.org >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >>> > >>> > >>> > >>> > -- >>> > lorn at lornlab dot org >>> > Lindolfo "Lorn" Rodrigues >>> > >>> > >>> > _______________________________________________ >>> > Cascavel-pm mailing list >>> > Cascavel-pm em pm.org >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm >>> > >>> _______________________________________________ >>> Cascavel-pm mailing list >>> Cascavel-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >> >> >> -- >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] >> [www.flickr.com/photos/alexeiz] >> «Only love / Can bring the rain / That makes you yearn to the sky» >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From russoz em gmail.com Thu Jan 20 05:40:51 2011 From: russoz em gmail.com (Alexei Znamensky) Date: Thu, 20 Jan 2011 11:40:51 -0200 Subject: [Cascavel-pm] =?utf-8?b?UGVybCBYIFJBTSAobWVtw7NyaWEp?= In-Reply-To: References: Message-ID: Capitão Mostarda, Sugiro você olhar o módulo Proc::Fork http://search.cpan.org/perldoc?Proc::Fork Pode te dar algumas idéias. []s, Russo 2011/1/20 João André Simioni > Blabos, > > Ele está chamando o script.pl com & comercial no final - assim a Shell > imediatamente coloca o processo em background e o system retorna > imediatamente. Ele consegue os múltiplos processos paralelos. > > Mas para o sistema operacional, é como se tivesse executado cada um > deles separadamente e por isso a quantidade de memória excessiva (não > compartilham nenhuma matriz de dados, nem nada assim). > > []'s > > Joao Andre > > > > 2011/1/20 Blabos de Blebe : > > Puta merda! > > > > Não é que se a gente não tomar cuidado bizonhice pega! > > > > Aff... > > > > 2011/1/20 Alexei Znamensky : > >> Blabos > >> > >> 2011/1/20 Blabos de Blebe > >>> > >>> Não foi o que você perguntou, mas considere: > >>> > >>> foo.pl: > >>> #!/usr/bin/perl > >>> > >>> print $ARGV[0], $/; > >>> `sleep 5`; > >> > >> aspas invertidas?? WTF? > >> perldoc -f sleep > >> > >>> > >>> ___ > >>> > >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' > >>> > >>> perldoc -f system: > >>> Does exactly the same thing as exec LIST , except that a fork is done > >>> first, and the parent process waits for the child process to exit. > >>> > >>> > >>> Então não tem chamada parelela nenhuma acontecendo. > >>> > >>> Abraços > >>> > >>> 2011/1/20 Lindolfo Lorn Rodrigues : > >>> > Cara, usar system não é uma boa pratica para cada chamada no system > ele > >>> > vai > >>> > carregar um bash para tratar o STDOUT que você manda para o > /dev/null, > >>> > eu > >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e > >>> > você > >>> > pode construir seu system dentro dele, e ele seria o seu "script > chefe" > >>> > porque ele foi feito para isso. > >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu > usei > >>> > ele, > >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o > meu > >>> > problema e mudei um pouco com o meu programa e etc. No seu caso > parece > >>> > que > >>> > você que gerenciar > >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. > >>> > Minha principal dica é, não use system faça seus programas Perl > >>> > conversarem > >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para > você > >>> > caso tenha alguma duvida pergunte ai, flw. > >>> > 2011/1/20 Tom Mostard > >>> >> > >>> >> Olá, pessoal! > >>> >> > >>> >> Estou tendo um problema de memória com scripts em Perl. > >>> >> Alguém aí teve algum problema parecido? > >>> >> > >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl > em > >>> >> paralelo. > >>> >> Então existe um script Perl "chefe" que fica responsável por > executar > >>> >> eles > >>> >> com parâmetros diferentes usando system(). > >>> >> > >>> >> O sistema acessa vários bancos de dados e a depender do banco, da > >>> >> tabela e > >>> >> do campo ele executa um módulo específico. > >>> >> Uso o MySQL em outra máquina para não abusar da memória. > >>> >> > >>> >> Script-chefe: > >>> >> > >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por > >>> >> enquanto > >>> >> são 60 > >>> >> { > >>> >> system( './script.pl $parametro1 > /dev/null & ' ); > >>> >> } > >>> >> > >>> >> Dentro do script é carregado um módulo usando require assim: > >>> >> > >>> >> require $ARGV[ 0 ].".pm"; > >>> >> > >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam > 158 > >>> >> MB > >>> >> de memória. > >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > >>> >> sistema. > >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é > >>> >> possível/normal?) > >>> >> Quando uso 60, nem todos os scripts são executados. > >>> >> Existe alguma maneira de executar um script otimizando o uso de > memória > >>> >> ou > >>> >> vou ter que reavaliar o código? > >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com > bancos > >>> >> desnecessárias. > >>> >> Existe algo mais que eu possa fazer? > >>> >> > >>> >> Abraços, > >>> >> > >>> >> Tom > >>> >> > >>> >> _______________________________________________ > >>> >> Cascavel-pm mailing list > >>> >> Cascavel-pm em pm.org > >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> > > >>> > > >>> > -- > >>> > lorn at lornlab dot org > >>> > Lindolfo "Lorn" Rodrigues > >>> > > >>> > > >>> > _______________________________________________ > >>> > Cascavel-pm mailing list > >>> > Cascavel-pm em pm.org > >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> _______________________________________________ > >>> Cascavel-pm mailing list > >>> Cascavel-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > >> > >> > >> -- > >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] > >> [www.flickr.com/photos/alexeiz] > >> «Only love / Can bring the rain / That makes you yearn to the sky» > >> > >> _______________________________________________ > >> Cascavel-pm mailing list > >> Cascavel-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [ www.flickr.com/photos/alexeiz] «Only love / Can bring the rain / That makes you yearn to the sky» -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From andregarciacarneiro em gmail.com Thu Jan 20 05:48:15 2011 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Thu, 20 Jan 2011 08:48:15 -0500 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Tem o AnyEvent também. Bem simples, e gerencia os forks bem melhor que 'meros seres humanos', embora pareça para mim bem menos complicado que o POE. Encontrei algo que parece se adequar ao que você precisa na documentação: use strict; use warnings; use AnyEvent; my $done = AnyEvent->condvar; #condvar é um Watcher. Pra saber o que é isso, leia a doc. do módulo. Esse cara vai receber a condição que pode determinar, por exemplo, o fim da execução. my $pid = fork or exit 5; #gerando o processo ou saindo se não conseguir my @scripts_to_run = somefunction_that_catch_the_scripts; foreach my $sc(@scripts_to_run){ my $w = AnyEvent->child ( #Esse watcher é específico para cuidar dos processos filhos gerados pelo fork pid => $pid, cb => sub { #essa é a função de callback... Você pode implementa-la em outro lugar... my ($pid, $status) = @_; warn "pid $pid exited with status $status"; #imprime o pid do processo e o status. #...vc pode rodar o seus script aqui com system, onde $sc tem o nome do script corrente, mas se valer a pena, talvez seja uma boa idéia que você coloque esses caras num módulo, e os execute como funções desse módulo aqui. $done->send; }, ); # a grosso modo, espera o programa terminar... $done->recv; } Cheers! Em 20 de janeiro de 2011 07:46, João André Simioni escreveu: > Blabos, > > Ele está chamando o script.pl com & comercial no final - assim a Shell > imediatamente coloca o processo em background e o system retorna > imediatamente. Ele consegue os múltiplos processos paralelos. > > Mas para o sistema operacional, é como se tivesse executado cada um > deles separadamente e por isso a quantidade de memória excessiva (não > compartilham nenhuma matriz de dados, nem nada assim). > > []'s > > Joao Andre > > > > 2011/1/20 Blabos de Blebe : > > Puta merda! > > > > Não é que se a gente não tomar cuidado bizonhice pega! > > > > Aff... > > > > 2011/1/20 Alexei Znamensky : > >> Blabos > >> > >> 2011/1/20 Blabos de Blebe > >>> > >>> Não foi o que você perguntou, mas considere: > >>> > >>> foo.pl: > >>> #!/usr/bin/perl > >>> > >>> print $ARGV[0], $/; > >>> `sleep 5`; > >> > >> aspas invertidas?? WTF? > >> perldoc -f sleep > >> > >>> > >>> ___ > >>> > >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' > >>> > >>> perldoc -f system: > >>> Does exactly the same thing as exec LIST , except that a fork is done > >>> first, and the parent process waits for the child process to exit. > >>> > >>> > >>> Então não tem chamada parelela nenhuma acontecendo. > >>> > >>> Abraços > >>> > >>> 2011/1/20 Lindolfo Lorn Rodrigues : > >>> > Cara, usar system não é uma boa pratica para cada chamada no system > ele > >>> > vai > >>> > carregar um bash para tratar o STDOUT que você manda para o > /dev/null, > >>> > eu > >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e > >>> > você > >>> > pode construir seu system dentro dele, e ele seria o seu "script > chefe" > >>> > porque ele foi feito para isso. > >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu > usei > >>> > ele, > >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o > meu > >>> > problema e mudei um pouco com o meu programa e etc. No seu caso > parece > >>> > que > >>> > você que gerenciar > >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. > >>> > Minha principal dica é, não use system faça seus programas Perl > >>> > conversarem > >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para > você > >>> > caso tenha alguma duvida pergunte ai, flw. > >>> > 2011/1/20 Tom Mostard > >>> >> > >>> >> Olá, pessoal! > >>> >> > >>> >> Estou tendo um problema de memória com scripts em Perl. > >>> >> Alguém aí teve algum problema parecido? > >>> >> > >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl > em > >>> >> paralelo. > >>> >> Então existe um script Perl "chefe" que fica responsável por > executar > >>> >> eles > >>> >> com parâmetros diferentes usando system(). > >>> >> > >>> >> O sistema acessa vários bancos de dados e a depender do banco, da > >>> >> tabela e > >>> >> do campo ele executa um módulo específico. > >>> >> Uso o MySQL em outra máquina para não abusar da memória. > >>> >> > >>> >> Script-chefe: > >>> >> > >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por > >>> >> enquanto > >>> >> são 60 > >>> >> { > >>> >> system( './script.pl $parametro1 > /dev/null & ' ); > >>> >> } > >>> >> > >>> >> Dentro do script é carregado um módulo usando require assim: > >>> >> > >>> >> require $ARGV[ 0 ].".pm"; > >>> >> > >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam > 158 > >>> >> MB > >>> >> de memória. > >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > >>> >> sistema. > >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é > >>> >> possível/normal?) > >>> >> Quando uso 60, nem todos os scripts são executados. > >>> >> Existe alguma maneira de executar um script otimizando o uso de > memória > >>> >> ou > >>> >> vou ter que reavaliar o código? > >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com > bancos > >>> >> desnecessárias. > >>> >> Existe algo mais que eu possa fazer? > >>> >> > >>> >> Abraços, > >>> >> > >>> >> Tom > >>> >> > >>> >> _______________________________________________ > >>> >> Cascavel-pm mailing list > >>> >> Cascavel-pm em pm.org > >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> > > >>> > > >>> > -- > >>> > lorn at lornlab dot org > >>> > Lindolfo "Lorn" Rodrigues > >>> > > >>> > > >>> > _______________________________________________ > >>> > Cascavel-pm mailing list > >>> > Cascavel-pm em pm.org > >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> _______________________________________________ > >>> Cascavel-pm mailing list > >>> Cascavel-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > >> > >> > >> -- > >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] > >> [www.flickr.com/photos/alexeiz] > >> «Only love / Can bring the rain / That makes you yearn to the sky» > >> > >> _______________________________________________ > >> Cascavel-pm mailing list > >> Cascavel-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- André Garcia Carneiro Analista/Desenvolvedor Perl (11)82907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From glasswalk3r em yahoo.com.br Thu Jan 20 05:49:43 2011 From: glasswalk3r em yahoo.com.br (Alceu R. de Freitas Jr.) Date: Thu, 20 Jan 2011 05:49:43 -0800 (PST) Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: Message-ID: <876396.65813.qm@web30807.mail.mud.yahoo.com> João, Este artigo aqui deve lhe dar idéias: http://acidcycles.wordpress.com/2010/11/28/a-journey-of-optimizing-perl/, principalmente sobre usar o Devel::NYTProf para identificar detalhes específicos do código. Você está usando algum UNIX certo? Eu tentaria o seguinte: parar de usar system para fazer as chamadas. Use fork e controle os processos filhos (Parallel::ForkManager, por exemplo). Quando processo filho é chamado dessa forma, o código do processo pai será copiado para os filhos e isso significa que os módulos Perl que você usa também serão. Como a maioria de UNIX decentes implementam COW, você só vai ter uma cópia dos resultados em memória (se não tentar alterar nada das variáveis). Tem outras coisas que você pode usar, como vetores (vectors) ao invés de arrays e usar arrays ao invés de hashes. Verifique os escopos das variáveis também para que elas sejam enviadas ao garbage collector o mais cedo possível. Mais que isso, você vai ter que postar algum código aqui para darmos palpites. []'s Alceu --- Em qui, 20/1/11, João André Simioni escreveu: > De: João André Simioni > Assunto: Re: [Cascavel-pm] Perl X RAM (memória) > Para: "Cascavel Perl Mongers" > Data: Quinta-feira, 20 de Janeiro de 2011, 4:46 > Blabos, > > Ele está chamando o script.pl com & comercial no final > - assim a Shell > imediatamente coloca o processo em background e o system > retorna > imediatamente. Ele consegue os múltiplos processos > paralelos. > > Mas para o sistema operacional, é como se tivesse > executado cada um > deles separadamente e por isso a quantidade de memória > excessiva (não > compartilham nenhuma matriz de dados, nem nada assim). > > []'s > > Joao Andre > > > > 2011/1/20 Blabos de Blebe : > > Puta merda! > > > > Não é que se a gente não tomar cuidado bizonhice > pega! > > > > Aff... > > > > 2011/1/20 Alexei Znamensky : > >> Blabos > >> > >> 2011/1/20 Blabos de Blebe > >>> > >>> Não foi o que você perguntou, mas > considere: > >>> > >>> foo.pl: > >>> #!/usr/bin/perl > >>> > >>> print $ARGV[0], $/; > >>> `sleep 5`; > >> > >> aspas invertidas?? WTF? > >> perldoc -f sleep > >> > >>> > >>> ___ > >>> > >>> perl -E 'while($i++ < > 10){system("./foo.pl", $i)}' > >>> > >>> perldoc -f system: > >>> Does exactly the same thing as exec LIST , > except that a fork is done > >>> first, and the parent process waits for the > child process to exit. > >>> > >>> > >>> Então não tem chamada parelela nenhuma > acontecendo. > >>> > >>> Abraços > >>> > >>> 2011/1/20 Lindolfo Lorn Rodrigues : > >>> > Cara, usar system não é uma boa pratica > para cada chamada no system ele > >>> > vai > >>> > carregar um bash para tratar o STDOUT que > você manda para o /dev/null, > >>> > eu > >>> > recomendo você dar uma olhada no POE, > ele é um sistema de 'threads' e > >>> > você > >>> > pode construir seu system dentro dele, e > ele seria o seu "script chefe" > >>> > porque ele foi feito para isso. > >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei > >>> > ele, > >>> > eu peguei um cookbook ( receita de bolo ) > que mais se parecia com o meu > >>> > problema e mudei um pouco com o meu > programa e etc. No seu caso parece > >>> > que > >>> > você que gerenciar > >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. > >>> > Minha principal dica é, não use system > faça seus programas Perl > >>> > conversarem > >>> > com eles mesmo usando IPC, TCP sei lá, o > POE resolve tudo isso para você > >>> > caso tenha alguma duvida pergunte ai, > flw. > >>> > 2011/1/20 Tom Mostard > >>> >> > >>> >> Olá, pessoal! > >>> >> > >>> >> Estou tendo um problema de memória > com scripts em Perl. > >>> >> Alguém aí teve algum problema > parecido? > >>> >> > >>> >> Tenho um "pequeno" sistema que > precisa executar vários scripts Perl em > >>> >> paralelo. > >>> >> Então existe um script Perl "chefe" > que fica responsável por executar > >>> >> eles > >>> >> com parâmetros diferentes usando > system(). > >>> >> > >>> >> O sistema acessa vários bancos de > dados e a depender do banco, da > >>> >> tabela e > >>> >> do campo ele executa um módulo > específico. > >>> >> Uso o MySQL em outra máquina para > não abusar da memória. > >>> >> > >>> >> Script-chefe: > >>> >> > >>> >> while ( my $i < $execucoes ) # > são execuções limitadas, mas por > >>> >> enquanto > >>> >> são 60 > >>> >> { > >>> >>     system( './script.pl > $parametro1 > /dev/null & ' ); > >>> >> } > >>> >> > >>> >> Dentro do script é carregado um > módulo usando require assim: > >>> >> > >>> >> require $ARGV[ 0 ].".pm"; > >>> >> > >>> >> Funciona tudo certo, se rodo 20, > funciona tudo normal e eles ocupam 158 > >>> >> MB > >>> >> de memória. > >>> >> Se rodo 40, eles ocupam 316 MB de > memória além da memória usada pelo > >>> >> sistema. > >>> >> Me parece que cada script carregado > usa 8 MB em média. (Isso é > >>> >> possível/normal?) > >>> >> Quando uso 60, nem todos os scripts > são executados. > >>> >> Existe alguma maneira de executar um > script otimizando o uso de memória > >>> >> ou > >>> >> vou ter que reavaliar o código? > >>> >> Já revisei o código e eliminei > arrays, variáveis de conexões com bancos > >>> >> desnecessárias. > >>> >> Existe algo mais que eu possa fazer? > >>> >> > >>> >> Abraços, > >>> >> > >>> >> Tom > >>> >> > >>> >> > _______________________________________________ > >>> >> Cascavel-pm mailing list > >>> >> Cascavel-pm em pm.org > >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> > > >>> > > >>> > -- > >>> > lorn at lornlab dot org > >>> > Lindolfo "Lorn" Rodrigues > >>> > > >>> > > >>> > > _______________________________________________ > >>> > Cascavel-pm mailing list > >>> > Cascavel-pm em pm.org > >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm > >>> > > >>> > _______________________________________________ > >>> Cascavel-pm mailing list > >>> Cascavel-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > >> > >> > >> -- > >> Alexei Znamensky [russoz_gmail_com] > [russoz.wordpress.com] > >> [www.flickr.com/photos/alexeiz] > >> «Only love / Can bring the rain / That makes > you yearn to the sky» > >> > >> _______________________________________________ > >> Cascavel-pm mailing list > >> Cascavel-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/cascavel-pm > >> > > _______________________________________________ > > Cascavel-pm mailing list > > Cascavel-pm em pm.org > > http://mail.pm.org/mailman/listinfo/cascavel-pm > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From andregarciacarneiro em gmail.com Thu Jan 20 05:53:56 2011 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Thu, 20 Jan 2011 08:53:56 -0500 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: O sr. Stanislav foi quem me encorajou a começar a mexer com esse troço, e na verdade parece ser muito bom. Qualquer dúvida, ou se eu escrevi alguma besteira(não testei o código) fala com o Stan que teve mais contato que eu com esse módulo. Cheers! Em 20 de janeiro de 2011 08:48, Andre Carneiro < andregarciacarneiro em gmail.com> escreveu: > Tem o AnyEvent também. Bem simples, e gerencia os forks bem melhor que > 'meros seres humanos', embora pareça para mim bem menos complicado que o > POE. > > Encontrei algo que parece se adequar ao que você precisa na documentação: > > > use strict; > use warnings; > use AnyEvent; > my $done = AnyEvent->condvar; #condvar é um Watcher. Pra saber o que é > isso, leia a doc. do módulo. Esse cara vai receber a condição que pode > determinar, por exemplo, o fim da execução. > > my $pid = fork or exit 5; #gerando o processo ou saindo se não conseguir > my @scripts_to_run = somefunction_that_catch_the_scripts; > foreach my $sc(@scripts_to_run){ > my $w = AnyEvent->child ( #Esse watcher é específico para cuidar dos > processos filhos gerados pelo fork > pid => $pid, > cb => sub { #essa é a função de callback... Você pode implementa-la > em outro lugar... > my ($pid, $status) = @_; > warn "pid $pid exited with status $status"; #imprime o pid do > processo e o status. > > #...vc pode rodar o seus script aqui com system, onde $sc tem o > nome do script corrente, mas se valer a pena, talvez seja uma boa idéia que > você coloque esses caras num módulo, e os execute como funções desse módulo > aqui. > > $done->send; > }, > ); > > # a grosso modo, espera o programa terminar... > $done->recv; > } > > > > > > > Cheers! > > Em 20 de janeiro de 2011 07:46, João André Simioni escreveu: > > Blabos, >> >> Ele está chamando o script.pl com & comercial no final - assim a Shell >> imediatamente coloca o processo em background e o system retorna >> imediatamente. Ele consegue os múltiplos processos paralelos. >> >> Mas para o sistema operacional, é como se tivesse executado cada um >> deles separadamente e por isso a quantidade de memória excessiva (não >> compartilham nenhuma matriz de dados, nem nada assim). >> >> []'s >> >> Joao Andre >> >> >> >> 2011/1/20 Blabos de Blebe : >> > Puta merda! >> > >> > Não é que se a gente não tomar cuidado bizonhice pega! >> > >> > Aff... >> > >> > 2011/1/20 Alexei Znamensky : >> >> Blabos >> >> >> >> 2011/1/20 Blabos de Blebe >> >>> >> >>> Não foi o que você perguntou, mas considere: >> >>> >> >>> foo.pl: >> >>> #!/usr/bin/perl >> >>> >> >>> print $ARGV[0], $/; >> >>> `sleep 5`; >> >> >> >> aspas invertidas?? WTF? >> >> perldoc -f sleep >> >> >> >>> >> >>> ___ >> >>> >> >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' >> >>> >> >>> perldoc -f system: >> >>> Does exactly the same thing as exec LIST , except that a fork is done >> >>> first, and the parent process waits for the child process to exit. >> >>> >> >>> >> >>> Então não tem chamada parelela nenhuma acontecendo. >> >>> >> >>> Abraços >> >>> >> >>> 2011/1/20 Lindolfo Lorn Rodrigues : >> >>> > Cara, usar system não é uma boa pratica para cada chamada no system >> ele >> >>> > vai >> >>> > carregar um bash para tratar o STDOUT que você manda para o >> /dev/null, >> >>> > eu >> >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' >> e >> >>> > você >> >>> > pode construir seu system dentro dele, e ele seria o seu "script >> chefe" >> >>> > porque ele foi feito para isso. >> >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu >> usei >> >>> > ele, >> >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o >> meu >> >>> > problema e mudei um pouco com o meu programa e etc. No seu caso >> parece >> >>> > que >> >>> > você que gerenciar >> >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. >> >>> > Minha principal dica é, não use system faça seus programas Perl >> >>> > conversarem >> >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para >> você >> >>> > caso tenha alguma duvida pergunte ai, flw. >> >>> > 2011/1/20 Tom Mostard >> >>> >> >> >>> >> Olá, pessoal! >> >>> >> >> >>> >> Estou tendo um problema de memória com scripts em Perl. >> >>> >> Alguém aí teve algum problema parecido? >> >>> >> >> >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl >> em >> >>> >> paralelo. >> >>> >> Então existe um script Perl "chefe" que fica responsável por >> executar >> >>> >> eles >> >>> >> com parâmetros diferentes usando system(). >> >>> >> >> >>> >> O sistema acessa vários bancos de dados e a depender do banco, da >> >>> >> tabela e >> >>> >> do campo ele executa um módulo específico. >> >>> >> Uso o MySQL em outra máquina para não abusar da memória. >> >>> >> >> >>> >> Script-chefe: >> >>> >> >> >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por >> >>> >> enquanto >> >>> >> são 60 >> >>> >> { >> >>> >> system( './script.pl $parametro1 > /dev/null & ' ); >> >>> >> } >> >>> >> >> >>> >> Dentro do script é carregado um módulo usando require assim: >> >>> >> >> >>> >> require $ARGV[ 0 ].".pm"; >> >>> >> >> >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam >> 158 >> >>> >> MB >> >>> >> de memória. >> >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada >> pelo >> >>> >> sistema. >> >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é >> >>> >> possível/normal?) >> >>> >> Quando uso 60, nem todos os scripts são executados. >> >>> >> Existe alguma maneira de executar um script otimizando o uso de >> memória >> >>> >> ou >> >>> >> vou ter que reavaliar o código? >> >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com >> bancos >> >>> >> desnecessárias. >> >>> >> Existe algo mais que eu possa fazer? >> >>> >> >> >>> >> Abraços, >> >>> >> >> >>> >> Tom >> >>> >> >> >>> >> _______________________________________________ >> >>> >> Cascavel-pm mailing list >> >>> >> Cascavel-pm em pm.org >> >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >>> > >> >>> > >> >>> > >> >>> > -- >> >>> > lorn at lornlab dot org >> >>> > Lindolfo "Lorn" Rodrigues >> >>> > >> >>> > >> >>> > _______________________________________________ >> >>> > Cascavel-pm mailing list >> >>> > Cascavel-pm em pm.org >> >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm >> >>> > >> >>> _______________________________________________ >> >>> Cascavel-pm mailing list >> >>> Cascavel-pm em pm.org >> >>> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >> >> >> >> >> >> >> -- >> >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] >> >> [www.flickr.com/photos/alexeiz] >> >> «Only love / Can bring the rain / That makes you yearn to the sky» >> >> >> >> _______________________________________________ >> >> Cascavel-pm mailing list >> >> Cascavel-pm em pm.org >> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >> >> > _______________________________________________ >> > Cascavel-pm mailing list >> > Cascavel-pm em pm.org >> > http://mail.pm.org/mailman/listinfo/cascavel-pm >> > >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > > > > -- > André Garcia Carneiro > Analista/Desenvolvedor Perl > (11)82907780 > -- André Garcia Carneiro Analista/Desenvolvedor Perl (11)82907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Thu Jan 20 06:26:34 2011 From: blabos em gmail.com (Blabos de Blebe) Date: Thu, 20 Jan 2011 12:26:34 -0200 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Para Executar somente um comando de cada vez eu tenho usado o IPC::Run. http://search.cpan.org/~toddr/IPC-Run-0.89/lib/IPC/Run.pm Já para executar vários processos paralelo, eu costumo usar Parallel::ForkManager http://search.cpan.org/~dlux/Parallel-ForkManager-0.7.5/ForkManager.pm É só ficar atento que a cada novo script, um novo interpretador é instanciado. 2011/1/20 Andre Carneiro : > O sr. Stanislav foi quem me encorajou a começar a mexer com esse troço, e na > verdade parece ser muito bom. > Qualquer dúvida, ou se eu escrevi alguma besteira(não testei o código) fala > com o Stan que teve mais contato que eu com esse módulo. > > Cheers! > > Em 20 de janeiro de 2011 08:48, Andre Carneiro > escreveu: >> >> Tem o AnyEvent também. Bem simples, e gerencia os forks bem melhor que >> 'meros seres humanos', embora pareça para mim bem menos complicado que o >> POE. >> Encontrei algo que parece se adequar ao que você precisa na documentação: >> >> use strict; >> use warnings; >> use AnyEvent; >> my $done = AnyEvent->condvar; #condvar é um Watcher. Pra saber o que é >> isso, leia a doc. do módulo. Esse cara vai receber a condição que pode >> determinar, por exemplo, o fim da execução. >> >>    my $pid = fork or exit 5; #gerando o processo ou saindo se não >> conseguir >>   my @scripts_to_run = somefunction_that_catch_the_scripts; >> foreach my $sc(@scripts_to_run){ >>    my $w = AnyEvent->child (   #Esse watcher é específico para cuidar dos >> processos filhos gerados pelo fork >>       pid => $pid, >>       cb  => sub { #essa é a função de callback... Você pode implementa-la >> em outro lugar... >>          my ($pid, $status) = @_; >>          warn "pid $pid exited with status $status"; #imprime o pid do >> processo e o status. >>          #...vc pode rodar o seus script aqui com system, onde $sc tem o >> nome do script corrente, mas se valer a pena, talvez seja uma boa idéia que >> você coloque esses caras num módulo, e os execute como funções desse módulo >> aqui. >>          $done->send; >>       }, >>    ); >> >>    # a grosso modo, espera o programa terminar... >>    $done->recv; >> } >> >> >> >> >> >> >> Cheers! >> >> Em 20 de janeiro de 2011 07:46, João André Simioni >> escreveu: >>> >>> Blabos, >>> >>> Ele está chamando o script.pl com & comercial no final - assim a Shell >>> imediatamente coloca o processo em background e o system retorna >>> imediatamente. Ele consegue os múltiplos processos paralelos. >>> >>> Mas para o sistema operacional, é como se tivesse executado cada um >>> deles separadamente e por isso a quantidade de memória excessiva (não >>> compartilham nenhuma matriz de dados, nem nada assim). >>> >>> []'s >>> >>> Joao Andre >>> >>> >>> >>> 2011/1/20 Blabos de Blebe : >>> > Puta merda! >>> > >>> > Não é que se a gente não tomar cuidado bizonhice pega! >>> > >>> > Aff... >>> > >>> > 2011/1/20 Alexei Znamensky : >>> >> Blabos >>> >> >>> >> 2011/1/20 Blabos de Blebe >>> >>> >>> >>> Não foi o que você perguntou, mas considere: >>> >>> >>> >>> foo.pl: >>> >>> #!/usr/bin/perl >>> >>> >>> >>> print $ARGV[0], $/; >>> >>> `sleep 5`; >>> >> >>> >> aspas invertidas?? WTF? >>> >> perldoc -f sleep >>> >> >>> >>> >>> >>> ___ >>> >>> >>> >>> perl -E 'while($i++ < 10){system("./foo.pl", $i)}' >>> >>> >>> >>> perldoc -f system: >>> >>> Does exactly the same thing as exec LIST , except that a fork is done >>> >>> first, and the parent process waits for the child process to exit. >>> >>> >>> >>> >>> >>> Então não tem chamada parelela nenhuma acontecendo. >>> >>> >>> >>> Abraços >>> >>> >>> >>> 2011/1/20 Lindolfo Lorn Rodrigues : >>> >>> > Cara, usar system não é uma boa pratica para cada chamada no system >>> >>> > ele >>> >>> > vai >>> >>> > carregar um bash para tratar o STDOUT que você manda para o >>> >>> > /dev/null, >>> >>> > eu >>> >>> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' >>> >>> > e >>> >>> > você >>> >>> > pode construir seu system dentro dele, e ele seria o seu "script >>> >>> > chefe" >>> >>> > porque ele foi feito para isso. >>> >>> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu >>> >>> > usei >>> >>> > ele, >>> >>> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o >>> >>> > meu >>> >>> > problema e mudei um pouco com o meu programa e etc. No seu caso >>> >>> > parece >>> >>> > que >>> >>> > você que gerenciar >>> >>> > processos http://poe.perl.org/?POE_Cookbook/Child_Component. >>> >>> > Minha principal dica é, não use system faça seus programas Perl >>> >>> > conversarem >>> >>> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para >>> >>> > você >>> >>> > caso tenha alguma duvida pergunte ai, flw. >>> >>> > 2011/1/20 Tom Mostard >>> >>> >> >>> >>> >> Olá, pessoal! >>> >>> >> >>> >>> >> Estou tendo um problema de memória com scripts em Perl. >>> >>> >> Alguém aí teve algum problema parecido? >>> >>> >> >>> >>> >> Tenho um "pequeno" sistema que precisa executar vários scripts >>> >>> >> Perl em >>> >>> >> paralelo. >>> >>> >> Então existe um script Perl "chefe" que fica responsável por >>> >>> >> executar >>> >>> >> eles >>> >>> >> com parâmetros diferentes usando system(). >>> >>> >> >>> >>> >> O sistema acessa vários bancos de dados e a depender do banco, da >>> >>> >> tabela e >>> >>> >> do campo ele executa um módulo específico. >>> >>> >> Uso o MySQL em outra máquina para não abusar da memória. >>> >>> >> >>> >>> >> Script-chefe: >>> >>> >> >>> >>> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por >>> >>> >> enquanto >>> >>> >> são 60 >>> >>> >> { >>> >>> >>     system( './script.pl $parametro1 > /dev/null & ' ); >>> >>> >> } >>> >>> >> >>> >>> >> Dentro do script é carregado um módulo usando require assim: >>> >>> >> >>> >>> >> require $ARGV[ 0 ].".pm"; >>> >>> >> >>> >>> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles >>> >>> >> ocupam 158 >>> >>> >> MB >>> >>> >> de memória. >>> >>> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada >>> >>> >> pelo >>> >>> >> sistema. >>> >>> >> Me parece que cada script carregado usa 8 MB em média. (Isso é >>> >>> >> possível/normal?) >>> >>> >> Quando uso 60, nem todos os scripts são executados. >>> >>> >> Existe alguma maneira de executar um script otimizando o uso de >>> >>> >> memória >>> >>> >> ou >>> >>> >> vou ter que reavaliar o código? >>> >>> >> Já revisei o código e eliminei arrays, variáveis de conexões com >>> >>> >> bancos >>> >>> >> desnecessárias. >>> >>> >> Existe algo mais que eu possa fazer? >>> >>> >> >>> >>> >> Abraços, >>> >>> >> >>> >>> >> Tom >>> >>> >> >>> >>> >> _______________________________________________ >>> >>> >> Cascavel-pm mailing list >>> >>> >> Cascavel-pm em pm.org >>> >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >>> >>> > >>> >>> > >>> >>> > >>> >>> > -- >>> >>> > lorn at lornlab dot org >>> >>> > Lindolfo "Lorn" Rodrigues >>> >>> > >>> >>> > >>> >>> > _______________________________________________ >>> >>> > Cascavel-pm mailing list >>> >>> > Cascavel-pm em pm.org >>> >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm >>> >>> > >>> >>> _______________________________________________ >>> >>> Cascavel-pm mailing list >>> >>> Cascavel-pm em pm.org >>> >>> http://mail.pm.org/mailman/listinfo/cascavel-pm >>> >> >>> >> >>> >> >>> >> -- >>> >> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] >>> >> [www.flickr.com/photos/alexeiz] >>> >> «Only love / Can bring the rain / That makes you yearn to the sky» >>> >> >>> >> _______________________________________________ >>> >> Cascavel-pm mailing list >>> >> Cascavel-pm em pm.org >>> >> http://mail.pm.org/mailman/listinfo/cascavel-pm >>> >> >>> > _______________________________________________ >>> > Cascavel-pm mailing list >>> > Cascavel-pm em pm.org >>> > http://mail.pm.org/mailman/listinfo/cascavel-pm >>> > >>> _______________________________________________ >>> Cascavel-pm mailing list >>> Cascavel-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/cascavel-pm >> >> >> >> -- >> André Garcia Carneiro >> Analista/Desenvolvedor Perl >> (11)82907780 > > > > -- > André Garcia Carneiro > Analista/Desenvolvedor Perl > (11)82907780 > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From leonardo.ruoso em gmail.com Sun Jan 23 15:15:22 2011 From: leonardo.ruoso em gmail.com (Leonardo Ruoso) Date: Sun, 23 Jan 2011 20:15:22 -0300 Subject: [Cascavel-pm] =?utf-8?b?UGVybCBYIFJBTSAobWVtw7NyaWEp?= In-Reply-To: References: Message-ID: Sua máquina não está aguentando 60 processos rodando simultaneamente, não sei se é isso que você quer, mas ao colocar seus "filhos" em background você está fazendo com que todos sejam executados simultaneamente. Só que seus filhos são como usuários concorrentes para o sistema operacional, então você deve pensar como se houvesse 60 pessoas trabalhando no seu servidor simultaneamente, pior, todas com processos rodando ao mesmo tempo... você consegue imaginar 60 firefox distintos utilizando a sua máquina ao mesmo tempo e acessando diferentes vídeos no you tube? pode até ser que sua máquina aguente, mesmo assim vai concordar comigo que toda máquina tem um limite. Você tem consciência que seu script, do jeito que está, poderia ser escrito em bash, sem nenhum prejuízo. Ou não tem? É verdade que você pode fazer algo mais interessante/elegante com AnyEvent ou POE (são soluções que exigem um pouco mais de conhecimento de sintaxe e de programação do que o seu script transparece) pode ser um ótimo aprendizado, mas também pode ser um passo maior que a perna para o momento imediato... Eu não compreendi contudo se é um requisito rodar simultaneamente tantos scripts filhos quanto possíveis, nesse caso, mesmo usando fork, AnyEvent ou POE ainda haverá um limite, maior que usando system (bem maior), mas haverá. Sou sempre a favor de aprender a solução mais elegante, mas entendo que algumas vezes precisamos de um hack e pode ser que o seu hack seja colocar um novo while na entrada do seu while atual do qual você só sai depois de verificar que a máquina tem recursos disponíveis e que seu o load está aceitável, lembrando de colocar um sleep 30 antes do final do while interno. Sim, tosco, mas pode lhe dar o tempo que precisa para estudar POE e AnyEvent sem ninguém resmungando ao seu pé-do-ouvido... Atenciosamente, Leonardo Ruoso (CE1921JP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . leonardo em ruoso.com · (11) 3522-9612 · (85) 8787-0312 http://leonardo.ruoso.com · http://twitter.com/LeonardoRuoso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *Leonardo Ruoso *· * *Gerente de Projetos · Analista de Sistemas Comunicação Social/Jornalismo - UFC/2006 · Telecomunicações - ETFCE/1998 *Internet e inovação tecnológica deste 1996* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011/1/20 Tom Mostard > Olá, pessoal! > > Estou tendo um problema de memória com scripts em Perl. > Alguém aí teve algum problema parecido? > > Tenho um "pequeno" sistema que precisa executar vários scripts Perl em > paralelo. > Então existe um script Perl "chefe" que fica responsável por executar eles > com parâmetros diferentes usando system(). > > O sistema acessa vários bancos de dados e a depender do banco, da tabela e > do campo ele executa um módulo específico. > Uso o MySQL em outra máquina para não abusar da memória. > > Script-chefe: > > while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto > são 60 > { > system( './script.pl $parametro1 > /dev/null & ' ); > } > > Dentro do script é carregado um módulo usando require assim: > > require $ARGV[ 0 ].".pm"; > > Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB > de memória. > Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo > sistema. > Me parece que cada script carregado usa 8 MB em média. (Isso é > possível/normal?) > Quando uso 60, nem todos os scripts são executados. > Existe alguma maneira de executar um script otimizando o uso de memória ou > vou ter que reavaliar o código? > Já revisei o código e eliminei arrays, variáveis de conexões com bancos > desnecessárias. > Existe algo mais que eu possa fazer? > > Abraços, > > Tom > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From capmostarda em gmail.com Mon Jan 24 19:14:41 2011 From: capmostarda em gmail.com (Tom Mostard) Date: Tue, 25 Jan 2011 00:14:41 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= In-Reply-To: References: Message-ID: Pessoal, Desculpem-me a demora na resposta. Acabei demorando de fazer testes com as dicas que vocês passaram, estava/estou ocupado com outro projeto. Mas fiz uns testes usando o Parallel::ForkManager. E, ao que me parece, o problema de consumo de memória continua. Estou querendo fazer uns testes com o threads.pm (não é o Threads.pm, que ao que me parece, foi descontinuado). Encontrei uns slides interessantes sobre threads.pm e processamento paralelo, nada muito avançado, mas muito bom: http://www.mawode.com/~waltman/talks/perl_threads.yapceu09.pdf Assim que testar as soluções que foram sugeridas, respasso os resultados. Só esqueci de dizer que o sistema operacional não foi otimizado para rodar tantos processos, acho que isso é possível. Também vou tentar fazer alguma coisa a respeito. Abraços, Tom 2011/1/23 Leonardo Ruoso > Sua máquina não está aguentando 60 processos rodando simultaneamente, não > sei se é isso que você quer, mas ao colocar seus "filhos" em background você > está fazendo com que todos sejam executados simultaneamente. Só que seus > filhos são como usuários concorrentes para o sistema operacional, então você > deve pensar como se houvesse 60 pessoas trabalhando no seu servidor > simultaneamente, pior, todas com processos rodando ao mesmo tempo... você > consegue imaginar 60 firefox distintos utilizando a sua máquina ao mesmo > tempo e acessando diferentes vídeos no you tube? pode até ser que sua > máquina aguente, mesmo assim vai concordar comigo que toda máquina tem um > limite. > > Você tem consciência que seu script, do jeito que está, poderia ser escrito > em bash, sem nenhum prejuízo. Ou não tem? É verdade que você pode fazer algo > mais interessante/elegante com AnyEvent ou POE (são soluções que exigem um > pouco mais de conhecimento de sintaxe e de programação do que o seu script > transparece) pode ser um ótimo aprendizado, mas também pode ser um passo > maior que a perna para o momento imediato... Eu não compreendi contudo se é > um requisito rodar simultaneamente tantos scripts filhos quanto possíveis, > nesse caso, mesmo usando fork, AnyEvent ou POE ainda haverá um limite, maior > que usando system (bem maior), mas haverá. > > Sou sempre a favor de aprender a solução mais elegante, mas entendo que > algumas vezes precisamos de um hack e pode ser que o seu hack seja colocar > um novo while na entrada do seu while atual do qual você só sai depois de > verificar que a máquina tem recursos disponíveis e que seu o load está > aceitável, lembrando de colocar um sleep 30 antes do final do while interno. > Sim, tosco, mas pode lhe dar o tempo que precisa para estudar POE e AnyEvent > sem ninguém resmungando ao seu pé-do-ouvido... > > Atenciosamente, > > Leonardo Ruoso (CE1921JP) > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > . . . . > leonardo em ruoso.com · (11) 3522-9612 · (85) 8787-0312 > http://leonardo.ruoso.com · http://twitter.com/LeonardoRuoso > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > . . . . > *Leonardo Ruoso *· * *Gerente de Projetos · Analista de Sistemas > Comunicação Social/Jornalismo - UFC/2006 · Telecomunicações - ETFCE/1998 > *Internet e inovação tecnológica deste 1996* > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > . . . . > > > 2011/1/20 Tom Mostard > >> Olá, pessoal! >> >> >> Estou tendo um problema de memória com scripts em Perl. >> Alguém aí teve algum problema parecido? >> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em >> paralelo. >> Então existe um script Perl "chefe" que fica responsável por executar eles >> com parâmetros diferentes usando system(). >> >> O sistema acessa vários bancos de dados e a depender do banco, da tabela e >> do campo ele executa um módulo específico. >> Uso o MySQL em outra máquina para não abusar da memória. >> >> Script-chefe: >> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto >> são 60 >> { >> system( './script.pl $parametro1 > /dev/null & ' ); >> } >> >> Dentro do script é carregado um módulo usando require assim: >> >> require $ARGV[ 0 ].".pm"; >> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB >> de memória. >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo >> sistema. >> Me parece que cada script carregado usa 8 MB em média. (Isso é >> possível/normal?) >> Quando uso 60, nem todos os scripts são executados. >> Existe alguma maneira de executar um script otimizando o uso de memória ou >> vou ter que reavaliar o código? >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos >> desnecessárias. >> Existe algo mais que eu possa fazer? >> >> Abraços, >> >> Tom >> >> _______________________________________________ >> Cascavel-pm mailing list >> Cascavel-pm em pm.org >> http://mail.pm.org/mailman/listinfo/cascavel-pm >> > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From glasswalk3r em yahoo.com.br Wed Jan 26 05:54:57 2011 From: glasswalk3r em yahoo.com.br (Alceu R. de Freitas Jr.) Date: Wed, 26 Jan 2011 05:54:57 -0800 (PST) Subject: [Cascavel-pm] =?iso-8859-1?q?Perl_X_RAM_=28mem=F3ria=29?= Message-ID: <345969.19776.qm@web30804.mail.mud.yahoo.com> Dependendo de como você usar Threads, seu programa vai gastar mais memória ainda. Outras técnicas é utilizar comunicação entre processos (IPC) e talvez o Memcached ou mesmo um banco de dados relacional para compartilhar as informações ao invés de manter diversas cópias em memória. Você precisa nos mostrar o que está utilizando no seu código que está consumindo tanta memória. Só assim vamos poder ajudar. Por exemplo, quantos módulos você está carregando para rodar o programa? []'s Alceu --- Em seg, 24/1/11, Tom Mostard escreveu: De: Tom Mostard Assunto: Re: [Cascavel-pm] Perl X RAM (memória) Para: "Cascavel Perl Mongers" Data: Segunda-feira, 24 de Janeiro de 2011, 19:14 Pessoal, Desculpem-me a demora na resposta. Acabei demorando de fazer testes com as dicas que vocês passaram, estava/estou ocupado com outro projeto. Mas fiz uns testes usando o Parallel::ForkManager. E, ao que me parece, o problema de consumo de memória continua. Estou querendo fazer uns testes com o threads.pm (não é o Threads.pm, que ao que me parece, foi descontinuado). Encontrei uns slides interessantes sobre threads.pm e processamento paralelo, nada muito avançado, mas muito bom: http://www.mawode.com/~waltman/talks/perl_threads.yapceu09.pdf Assim que testar as soluções que foram sugeridas, respasso os resultados. Só esqueci de dizer que o sistema operacional não foi otimizado para rodar tantos processos, acho que isso é possível. Também vou tentar fazer alguma coisa a respeito. Abraços, Tom 2011/1/23 Leonardo Ruoso Sua máquina não está aguentando 60 processos rodando simultaneamente, não sei se é isso que você quer, mas ao colocar seus "filhos" em background você está fazendo com que todos sejam executados simultaneamente. Só que seus filhos são como usuários concorrentes para o sistema operacional, então você deve pensar como se houvesse 60 pessoas trabalhando no seu servidor simultaneamente, pior, todas com processos rodando ao mesmo tempo... você consegue imaginar 60 firefox distintos utilizando a sua máquina ao mesmo tempo e acessando diferentes vídeos no you tube? pode até ser que sua máquina aguente, mesmo assim vai concordar comigo que toda máquina tem um limite. Você tem consciência que seu script, do jeito que está, poderia ser escrito em bash, sem nenhum prejuízo. Ou não tem? É verdade que você pode fazer algo mais interessante/elegante com AnyEvent ou POE (são soluções que exigem um pouco mais de conhecimento de sintaxe e de programação do que o seu script transparece) pode ser um ótimo aprendizado, mas também pode ser um passo maior que a perna para o momento imediato... Eu não compreendi contudo se é um requisito rodar simultaneamente tantos scripts filhos quanto possíveis, nesse caso, mesmo usando fork, AnyEvent ou POE ainda haverá um limite, maior que usando system (bem maior), mas haverá. Sou sempre a favor de aprender a solução mais elegante, mas entendo que algumas vezes precisamos de um hack e pode ser que o seu hack seja colocar um novo while na entrada do seu while atual do qual você só sai depois de verificar que a máquina tem recursos disponíveis e que seu o load está aceitável, lembrando de colocar um sleep 30 antes do final do while interno. Sim, tosco, mas pode lhe dar o tempo que precisa para estudar POE e AnyEvent sem ninguém resmungando ao seu pé-do-ouvido... Atenciosamente, Leonardo Ruoso (CE1921JP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . leonardo em ruoso.com · (11) 3522-9612 · (85) 8787-0312 http://leonardo.ruoso.com · http://twitter.com/LeonardoRuoso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Leonardo Ruoso · Gerente de Projetos · Analista de Sistemas Comunicação Social/Jornalismo - UFC/2006 · Telecomunicações - ETFCE/1998 Internet e inovação tecnológica deste 1996 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011/1/20 Tom Mostard Olá, pessoal! Estou tendo um problema de memória com scripts em Perl. Alguém aí teve algum problema parecido? Tenho um "pequeno" sistema que precisa executar vários scripts Perl em paralelo. Então existe um script Perl "chefe" que fica responsável por executar eles com parâmetros diferentes usando system(). O sistema acessa vários bancos de dados e a depender do banco, da tabela e do campo ele executa um módulo específico. Uso o MySQL em outra máquina para não abusar da memória. Script-chefe: while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto são 60 {     system( './script.pl $parametro1 > /dev/null & ' ); } Dentro do script é carregado um módulo usando require assim: require $ARGV[ 0 ].".pm"; Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB de memória. Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo sistema. Me parece que cada script carregado usa 8 MB em média. (Isso é possível/normal?) Quando uso 60, nem todos os scripts são executados. Existe alguma maneira de executar um script otimizando o uso de memória ou vou ter que reavaliar o código? Já revisei o código e eliminei arrays, variáveis de conexões com bancos desnecessárias. Existe algo mais que eu possa fazer? Abraços, Tom _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm -----Anexo incorporado----- _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm