2011年12月12日星期一

[PerlChina] AnyEvent timer + AnyEvent-HTTP 出现的memleak问题

Hi all,

貌似最近AnyEvent挺火,以前也尝试过,实在用不怪,
近几天又拿来用,发现个问题。

如下例,
AnyEvent timer 回调中设置了一个AnyEvent::HTTP的http_get,
并且指定一个代理,这段代码运行一个小时内存使用了100M,
若去掉代理,内存消耗就正常。

若改下代码,http_get放在一个循环中,则也未见memleak出现。

搞不清这个memleak 是由timer引起的,还是AnyEvent-HTTP引起的。
是bug? 还是我没用好?

帮忙分析下,先谢。

Code:
##################
use AnyEvent;
use AnyEvent::HTTP;

local $| = 1;

my $cv = AnyEvent->condvar;
my $url = 'http://www.google.com';

my $w1 = AnyEvent->timer(
after => 1,
interval => 1,
cb => sub { get($url) },
);

$cv->recv;

sub get {
my $url = shift;

AnyEvent::HTTP::http_get ($url, proxy => ['127.0.0.1', 8080], sub {
my ($body, $hdr) = @_;
print $hdr->{Status}, "\n";
});
}
####################

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

没有评论: