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
51
52
53
54
55
#!perl -w
my $str = '';
open( FH, "<test.htm") or die("Cannot open file");
while(<FH>)
{
$str .= $_;
}
close(FH);
$length = length($str);
print "Str-Laenge: $length\n";
# start timer
$start = time();
# perform a math operation 200000 times
for ($x=0; $x<=1000000; $x++)
{
### Operations
&test2;
}
# end timer
$end = time();
# report
print "Time taken was ", ($end - $start), " seconds";
sub test1()
{
my $start = index($str, "<title>");
my $ende = index($str, "</title>");
$ende = $ende - $start - 7;
$start += 7;
my $title = substr($str, $start, $ende);
}
sub test2()
{
if($str =~ /<title>(.*)<\/title>/i )
{
my $title = $1;
}
}
bei dem ersten versuch habe ich, wie hier test2() ausgeführt, Laufzeit 14 Sekunden.
test1() Laufzeit: 3 sekunden!
Sobald ich aber in beide Funktionen ein print eingesetzt habe, waren die plötzlich gleichschnell! Könnte ihr das mal testen?
habt ihr noch ideen, wie ich die funktionen tunen könnte?
greetz, timebeater