我想通過HTTPS連接時發現LWP的內存泄漏。用下面的腳本,不斷內存使用率增加:使用HTTPS的Perl的LWP內存泄漏
use LWP::UserAgent;
$ua = LWP::UserAgent->new();
$request = HTTP::Request->new(GET=>'https://www.google.com/');
while (1) {
$response = $ua->request($request);
sleep(1);
}
這等腳本有沒有問題:
use LWP::UserAgent;
$ua = LWP::UserAgent->new();
$request = HTTP::Request->new(GET=>'http://www.google.com/'); # https => http
while (1) {
$response = $ua->request($request);
sleep(1);
}
的Perl 5.12.3/LWP 5.837 /地穴:: SSLeay的0.58/Mac的OS X 10.7。 4
有沒有人知道解決這個問題的方法?
UPDATE
的Perl 5.12.4/LWP 6.05 /地穴:: SSLeay的0.64/Mac OS X的10.8.4
通過HTTPS連接時,內存泄漏仍然存在。要試用它,請在終端上運行示例腳本,並通過活動監視器查看內存的增長和增長情況。
UPDATE
一些測試我發現,最近我的圖書館的升級,仍然有內存泄漏之後,但當你調用特定的地址通過HTTPS時纔會發生。在上面的例子中,我打電話給https://www.google.com,它恰好是這些地址之一。例如,下面的代碼給了我沒有內存泄漏:
use LWP::UserAgent;
$ua = LWP::UserAgent->new();
$request = HTTP::Request->new(GET=>'https://twitter.com/'); # www.google.com => twitter.com
while (1) {
$response = $ua->request($request);
sleep(1);
}
UPDATE
我報告的錯誤的和其他一些人也證實了我的發現:https://rt.cpan.org/Ticket/Display.html?id=88287
版本或Perl/LWP/Crypt :: SSLeay?平臺? – raina77ow
您是否期望程序的大小縮小?在Unix上,他們不這樣做。高水位正在上升,隨着內存的釋放,它被保存在池中供程序重用,但它們從不縮水。 –
我剛剛添加了版本號。不,我不希望它縮小,但是這個腳本是某種機器人,經過短短几天的運行,腳本已經使用了500 Mb。 – calvillo