私はPerlスクリプトを持っており、DBIを使用してMySQLからhttp://1.1.1.1/1.jpg
のようなURLを取得し、LWP :: Simpleを使用してこのjpgファイルをダウンロードします。それは無限ループです。Perlスクリプトのメモリ使用
while (1) {
my $url=&fetch_url_from_mysql;
if ($url){
&download_jpg($url);
} else {
sleep 1;
}
}
プレーンシンプル。私は、メモリ使用量が一定量にとどまると思います。しかし、このスクリプトの1ヶ月間連続して実行した後。メモリ使用量は7.5Gです!
どのようにプロファイルできますか?
fetch_url_from_mysqlは毎回新しい接続を開いていますか? – xxpor
はい。 'fetch_url_from_mysql'の' while loop'が 'prepare、execute、fetch and return $ url'の前に' DBI :: connect'を呼びます。 – everbox
コードを洗練された例に洗い流す際に、実際にメモリを使用する部分が洗い流されました。 – DavidO