Hallo,
ich arbeite an einem spider und arbeite mit threads.Für x bis threads_max erstellt er einen thread und startet das scannen in &client_get_links_threads;
wenn max_threads erreicht wird, führt er jeweils join durch ...
wenn ich das script laufen lassen konsumierts soviel speicher das ein Out of Memory kommt.
was mache ich falsch?wie kann ich es verbessern, sodass keine memory leaks mehr auftreten?
MfG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
} elsif ($follow_flag == "1"){
print "[$i] Scanning $tmp_url\n";
if ($thread_count < $thread_max) {
push @threads, threads->new(\&CLIENT_get_links_threads, $tmp_url, $i, "threads_links.txt");
$thread_count++;
} elsif ($thread_count == $thread_max){
print "\n&linktiefe_scanner_threads(): Max Threads reached: joining them!\n\n" if ($debug == "1");
foreach (@threads) { eval { $_->join; } && warn $@ if $@; };
$thread_count = "0";
} elsif ($#working_links == $link_count) {
print "\n&linktiefe_scanner_threads(): Last Link in Array - Threads: joining them!\n\n" if ($debug == "1");
foreach (@threads) { eval { $_->join; } && warn $@ if $@; };
}
# ...
# here do something with the links (spider / mirror )
# ...
} else {
\n\n
<!--EDIT|esskar|1122653033-->