http://www.perlmonks.org?node_id=940806


in reply to Re: RRD-Ping getting values on right interval
in thread RRD-Ping getting values on right interval

Just wondering why this half a second 'error' would happen on each sleep? Is this something normal?
  • Comment on Re^2: RRD-Ping getting values on right interval

Replies are listed 'Best First'.
Re^3: RRD-Ping getting values on right interval
by CountZero (Bishop) on Nov 30, 2011 at 13:07 UTC
    sleep has a resolution of one second. It means it can trigger anywhere in that one second and therefore on the average it will be 0.5 seconds "off" the exact mark.

    CountZero

    A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

Re^3: RRD-Ping getting values on right interval
by ww (Archbishop) on Nov 30, 2011 at 11:57 UTC
    If you look at the ping report, the RT times (as printed) total 25 miliseconds; at the moment, I'm looking at RTs on the order of 90 milisecs. Either adds up to half a sec pretty fast -- just 6 (+/-) iterations in my case; 20 in yours.

    BTW, your script requires mods/workaround beyond my ken for Windoze/AS 5.12...:
    Your vendor has not defined POSIX macro WUNTRACED, used at F:\_Perl_\pl_test\940785.pl
    at my equivalent of your line 45.

      You can substitute that with normal waitpid.That should work i guess.I didnt quite get how did you arrive at the value of '20'. Thanks
        20 iterations * 25 milisec/iteration = 500 milisecs or 0.5 seconds

        Actually, the sum of your RTs is 23 milisec, but that's close enough for this explanation, as is the WAG that -w 15 will net (roughly) a thruput of 20 iterations.