【发布时间】:2012-04-13 19:48:55
【问题描述】:
我有一个 Perl 脚本,使用 DBI 从 MySQL 获取像 http://1.1.1.1/1.jpg 这样的 URL,然后使用 LWP::Simple 下载这个 jpg 文件。这是一个无限循环。
while (1) {
my $url=&fetch_url_from_mysql;
if ($url){
&download_jpg($url);
} else {
sleep 1;
}
}
简单明了。我想内存使用量会保持在一定范围内。但是这个脚本连续运行一个月后。内存占用7.5G!
我如何分析它?
【问题讨论】:
-
fetch_url_from_mysql 是否每次都打开一个新连接,而不是关闭它?
-
是的。我在
while loop之前调用DBI::connect,在fetch_url_from_mysql中是prepare,execute,fetch and return $url -
在将代码清洗成一个干净的示例时,您会清洗掉实际使用内存的部分。
标签: perl