$ perl chdir_benchmar Benchmark: timing 1000 iterations of with_chdir, without_chdir... with_chdir: 16 wallclock secs ( 8.11 usr + 8.46 sys = 16.57 CPU) @ 60.35/s (n=1000) without_chdir: 31 wallclock secs (10.98 usr + 19.15 sys = 30.13 CPU) @ 33.19/s (n=1000)
#!/usr/bin/perl use warnings; use strict; use Benchmark; sub with_chdir { my $d = shift; my $filecount = 0; chdir($d) or die "chdir: $!\n"; opendir(DIR,"."); while(my $f = readdir(DIR)) { ( -f $f) and $filecount++; } } sub without_chdir { my $d = shift; my $filecount = 0; opendir(DIR,$d); while(my $f = readdir(DIR)) { ( -f "$d/$f") and $filecount++; } } use constant TESTDIR => "/var/mail"; timethese(100, { with_chdir => sub { with_chdir(TESTDIR); }, without_chdir => sub { without_chdir(TESTDIR); }, });
In reply to Re^2: The -d switch isn't working as I expected it to (test to see if its a directory)
by sgifford
in thread The -d switch isn't working as I expected it to (test to see if its a directory)
by heigold1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |