- 564 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:15:20 ]
- binmode $fh; をかましてバイナリ読み込みにすると、差が縮まった。
Benchmark: timing 50000 iterations of local $/, read, sysread... local $/: 9 wallclock secs ( 2.64 usr + 5.34 sys = 7.98 CPU) @ 6262.53/s (n=50000) read: 8 wallclock secs ( 2.03 usr + 5.47 sys = 7.50 CPU) @ 6666.67/s (n=50000) sysread: 6 wallclock secs ( 1.72 usr + 4.61 sys = 6.33 CPU) @ 7900.14/s (n=50000) Rate local$/ read sysread local $/ 6263/s -- -6% -21% read 6667/s 6% -- -16% sysread 7900/s. 26% 19% -- ただ、読み込むファイル容量を大きくする(以下)と差が出る。 my $file = 'kakikomi.txt'; # 6,863,205bytes(≒6.5Mbytes)、271,365行 Benchmark: timing 300 iterations of local $/, read, sysread... local $/: 6 wallclock secs ( 4.45 usr + 2.08 sys = 6.53 CPU) @ 45.93/s (n=300) read: 4 wallclock secs ( 2.02 usr + 2.06 sys = 4.08 CPU) @ 73.58/s (n=300) sysread: 4 wallclock secs ( 0.08 usr + 3.11 sys = 3.19 CPU) @ 94.13/s (n=300) Rate local$/ read sysread local $/ 45.9/s -- -38% -51% read 73.6/s 60% -- -22% sysread 94.1/s. 105% 28% --
|

|