Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^8: Unexpected Timing spikes using Time::HiRes

by desemondo (Hermit)
on Jan 21, 2010 at 22:34 UTC ( #818832=note: print w/replies, xml ) Need Help??


in reply to Re^7: Unexpected Timing spikes using Time::HiRes
in thread Unexpected Timing spikes using Time::HiRes

At present, i'm using it in a pair of simple 'ping' scripts.

Now, before you say, I should just use Net::Ping or another varient, the reason I'm rolling my own is that I need to a 'ping' tool that goes to the top of the tcp stack, and not only halfway. (I have seen many issues where a server is hung but still responds to icmp pings.) Plus, I wanted to learn a bit more about how sockets and InterProcess communication work, by making my own.

In troubleshooting a timing issue in another application, these scripts will hopefully rule out our network and point the finger at the application (or maybe the server...).

(OT)
Due to this apparent timeslot priority issue, is there any way to read from a non-blocking socket without sleeping? I've found that unless I sleep inside the socket-read loop, the CPU bleeds like crazy...
  • Comment on Re^8: Unexpected Timing spikes using Time::HiRes

Replies are listed 'Best First'.
Re^9: Unexpected Timing spikes using Time::HiRes
by BrowserUk (Pope) on Jan 22, 2010 at 01:51 UTC
    is there any way to read from a non-blocking socket without sleeping?

    Yes. (Kinda:). See select or easier, IO::Select::can_read([TIMEOUT]). can_read() will block until there is some data available to be read, or the timeout elapses (if you suppy one). In reality, it is just doing the sleep for you.

    As for timing your ping tool. I think you are being way optimistic if you are expecting to detect server errors within less than 100th of a second. That's effectively what you are saying when you are concerned about a 15ms delay.

    Even on a modern Gb/s LANs taking action on the basis of a delay of much less than 1/10th of a second would be wildly premature.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2020-01-18 12:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?