Schrift
[thread]6719[/thread]

Benchmark für Ausgabe einer (kleinen) Datei: Wens interessiert...



<< >> 2 Einträge, 1 Seite
format_c
 2005-02-18 00:52
#51875 #51875
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das Script:
Code: (dl )
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
use strict;
use Benchmark;

sub test1 {
open FILE,'<',$0 or die $!;
local $/;
print STDERR <FILE>;
close FILE;
}

sub test2 {
open FILE,'<',$0 or die $!;
while (<FILE>) {
print STDERR $_;
}
close FILE;
}

sub test3 {
open my $fh,'<',$0 or die $!;
local $/;
print STDERR <$fh>;
close $fh;
}

sub test4 {
open my $fh,'<',$0 or die $!;
while (<$fh>) {
print STDERR $_;
}
close FILE;
}
###############################################

sub test5 {
require IO::File;
my $fh = IO::File->new($0,'r') or die $!;
print STDERR <$fh>;
$fh->close();
}

timethese(1_000_000,{
'Mit "open FILE" und ohne "while"' => \&test1,
'Mit "open FILE" und mit "while"' => \&test2,
'Mit "open $fh" und ohne "while"' => \&test3,
'Mit "open $fh" und mit "while"' => \&test4,
'Mit "IO::File"' => \&test5
});

Ergebnis:
Code: (dl )
1
2
3
4
5
6
7
8
9
koeppea@foxi:~/perl_scripts> tail -f benchmark.txt
Benchmark: timing 1000000 iterations of Mit "IO::File", Mit "open $fh" und mit "while", Mit "open $fh" und ohne "while", Mit "open FILE" und mit "while", Mit "open FILE" und ohne "while"...
Mit "IO::File": 540 wallclock secs (456.56 usr + 76.48 sys = 533.04 CPU) @ 1876.03/s (n=1000000)
Mit "open $fh" und mit "while": 128 wallclock secs (97.60 usr + 29.50 sys = 127.10 CPU) @ 7867.82/s (n=1000000)
Mit "open $fh" und ohne "while": 45 wallclock secs (33.78 usr + 11.26 sys = 45.04 CPU) @ 22202.49/s (n=1000000)
Mit "open FILE" und mit "while": 114 wallclock secs (85.77 usr + 27.13 sys = 112.90 CPU) @ 8857.40/s (n=1000000)
Mit "open FILE" und ohne "while": 34 wallclock secs (22.93 usr + 10.84 sys = 33.77 CPU) @ 29612.08/s (n=1000000)

koeppea@foxi:~/perl_scripts>



OK Das Ergebnis mit IO::File würde wahrscheinlich besser ausfallen wenn mehr Dateien damit gelesen werden würden. Nur ich brauch das nur einmal pro Ausführung.

Gruß Alex
ptk
 2005-02-18 11:52
#51876 #51876
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich trag das mal in meine Benchmark-Sammlung ein: http://cvs.sourceforge.net/viewcvs.py/srezic/perl-bench/
<< >> 2 Einträge, 1 Seite



View all threads created 2005-02-18 00:52.