Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

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?

Replies are listed 'Best First'.
Re^2: File::Copy or system
by Marshall (Abbot) 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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://928374]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2018-06-25 03:50 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.