Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
Think about Loose Coupling
 
PerlMonks  

Re: File::Copy or system

by Riales (Hermit)
on Sep 28, 2011 at 17:26 UTC ( #928374=note: print w/ replies, xml ) Need Help??


in reply to File::Copy or system

I don't know anything about the security aspect of it, but I was curious about which one was faster, so I ran a benchmark...

Copying about 1.5MB:

Benchmark: running File::Copy::cp($a, $b), system('cp', $a, $b) for at + least 3 CPU seconds... File::Copy::cp($a, $b): 4 wallclock secs ( 0.17 usr + 3.18 sys = 3. +35 CPU) @ 339.70/s (n=1138) system('cp', $a, $b): 29 wallclock secs ( 0.13 usr 3.21 sys + 1.43 c +usr 24.26 csys = 29.03 CPU) @ 965.27/s (n=3224)

I'd like to admit that I don't quite know how to parse the results. It looks like the system command incurs a 1.43 cusr and 24.26 csys penalty--what is that?


Comment on Re: File::Copy or system
Download Code
Re^2: File::Copy or system
by Marshall (Prior) on Oct 03, 2011 at 23:58 UTC
    File::Copy will be a native port and will expressed in terms of 'C' calls to the underlying O/S functions. 'C' functions will be called via .DLL's or .so's to do the job without needing a separate processes or programs.

    The end result is that Perl can copy or move a file faster than the command line shell (like bash, etc) can do it because there is no bash interpreter! (a separate program that has to get started and there are inefficiencies with that...).

    Your result is not surprising and is expected.

    A simple Perl program can beat the heck out of MS XCOPY.

    Well written Perl runs very quickly.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://928374]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2014-04-19 00:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (473 votes), past polls