Guest User

Untitled

a guest
May 22nd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. use File::Copy;
  7. use Benchmark qw(cmpthese);
  8.  
  9. my $file = shift;
  10. my $moved = "$file.mv";
  11.  
  12. cmpthese shift || -3, {
  13. mv => sub {
  14. system "mv" => $file => $moved;
  15. die if $?;
  16. system "mv" => $moved => $file;
  17. die if $?;
  18. },
  19. move => sub {
  20. move $file, $moved or die $!;
  21. move $moved, $file or die $!;
  22. },
  23. rename => sub {
  24. rename $file, $moved or die $!;
  25. rename $moved, $file or die $!;
  26. },
  27. cp => sub {
  28. system "cp" => $file => $moved;
  29. die if $?;
  30. system "cp" => $moved => $file;
  31. die if $?;
  32. },
  33. copy => sub {
  34. copy $file, $moved or die $!;
  35. copy $moved, $file or die $!;
  36. },
  37. };
  38.  
  39. __END__
  40.  
  41. For a small file (3 lines of text)
  42. Rate cp mv copy move rename
  43. cp 68.1/s -- -2% -95% -99% -99%
  44. mv 69.6/s 2% -- -95% -99% -99%
  45. copy 1282/s 1782% 1741% -- -74% -82%
  46. move 5000/s 7240% 7080% 290% -- -30%
  47. rename 7143/s 10386% 10157% 457% 43% --
  48.  
  49.  
  50. For a large file (2.4 megs /usr/share/dict/words)
  51. Rate cp mv copy move rename
  52. cp 36.0/s -- -48% -49% -99% -99%
  53. mv 69.6/s 93% -- -1% -99% -99%
  54. copy 70.6/s 96% 1% -- -99% -99%
  55. move 5000/s 13780% 7080% 6980% -- -30%
  56. rename 7143/s 19729% 10157% 10014% 43% --
Add Comment
Please, Sign In to add comment