Thread Verzeichnis durchsuchen - C# viel schneller als Perl? (15 answers)
Opened by Gustl at 2013-07-04 16:41

topeg
 2013-07-05 02:52
#168730 #168730
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Interessant chdir( ... ) zusammen mit opendir( ... ,'.') scheint wirklich schneller zu sein als wenn man das Verzeichnis explizit öffnet. Hier scheint das Auflösen des Pfades bei -d ... ziemlich ins Gewicht zu fallen. Ich habe meinen Code mal entsprechend angepasst:
Code (perl): (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
sub process_files_1 {
  my @stack=@_;
  my $dir=getcwd;

  my ($p,$dh,$path);
  while(@stack)
  {
    $path = pop(@stack);
    chdir( $path ) or die "chdir($path) failed: $!";;
    opendir( $dh, '.' ) or die "Unable to open $path: $!\n";
    for( readdir( $dh ) )
    {
      next if( $_ eq '.' or $_ eq '..' );
      if( -d $_ )
      { push(@stack, $path.'/'.$_); }
      elsif( substr($_,-4,4) eq '.pod' )
      { push(@files_erg, $_); }
    }
    closedir ($dh);
  }

  chdir ( $dir ) or die "chdir($dir) failed: $!\n";
  return $count;
}


Das schiebt meinen Code nach vorne (zumindest bei mir)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
topeg:  1013
gustl: 1013
ffrule: 1013
ffind: 1013
guspeg: 1013

Rate ffrule ffind gustl guspeg topeg
ffrule 8.17/s -- -6% -57% -60% -70%
ffind 8.73/s 7% -- -54% -58% -68%
gustl 19.2/s 134% 120% -- -7% -29%
guspeg 20.6/s 152% 136% 8% -- -23%
topeg 26.9/s 229% 208% 40% 30% --

View full thread Verzeichnis durchsuchen - C# viel schneller als Perl?