in reply to Re^3: snmpget is missing some values
in thread snmpget is missing some values

Probably nanoseconds, so no big deal

I thought that sounded optimistically fast, so here's the benchmark:

$ cat pore.pl #!/usr/bin/env perl use strict; use warnings; use Benchmark 'cmpthese'; open my $fh, '>', '/tmp/wp.txt' or die $!; cmpthese (10000, { 'print' => sub { print $fh "x\n"; }, 'echo' => sub { system "echo x >> /tmp/we.txt"; } } ); close $fh; exit; $ perl pore.pl (warning: too few iterations for a reliable count) Rate echo print echo 317/s -- -100% print 10000000000000000000/s 3153000000000000000% --

Yes, print is so much faster than shelling out each time it is practially immeasurable. They'll get closer if you do the open and close inside the sub of course and that would mean losing the buffering too but it's still going to beat the pants off a fork and a shell invocation each time just to do a one-line write.

Upshot: on my machine here it isn't nanoseconds - it's more like 3 milliseconds.

Replies are listed 'Best First'.
Re^5: snmpget is missing some values
by NetWallah (Canon) on Apr 14, 2016 at 01:03 UTC
    Thanks for putting in the effort to test my wild guess (++).

    On my machine, Your test gets me 2174 echo per second, which is around 460 MICRO seconds each - yes , still not in NANO seconds.
    (It helps that I am writing to an SSD disk)

    I updated the code slightly to get closer to the "echo" open/close of the file, and append to it, and 10x the iterations:

    use strict; use warnings; use Benchmark 'cmpthese'; cmpthese (100000, { 'print' => sub { open my $fh, '>>', '/tmp/wp.txt' or die $!; print $fh "x\n"; close $fh; }, 'echo' => sub { system "echo x >> /tmp/we.txt"; } } ); exit;
    This gives me:
    Rate echo print echo 2168/s -- -98% print 140845/s 6397% --
    Where the perl performance is pushing the limits of nanoseconds, at 7100 nanoseconds per write.

    In any case, the lesson learned is that perl is about 70 times faster than "echo".

            This is not an optical illusion, it just looks like one.