in reply to Re^2: Performance and CPU load: sysread, IO::Select and/or Storable::thaw
in thread Performance and CPU load: sysread, IO::Select and/or Storable::thaw
I would have uncommented any calls to $handle->blocking(0). The default mode is blocking, so that should work, and work even after forks.
Naturally that could make other problems if some other part of the code relies on non-blocking reads, but it would be only for testing the hypothesis
The timeout of 5 seconds is quite ok. If the loop only runs every 5 seconds you will never notice it. What the docs mean is that if you don't specify a TIMEOUT value, the timeout value will be infinity. But 5 seconds is practically infinity, if you look at cpu load
So uncomment or remove the blocking(0) calls, add print lines around your can_read calls to check if they wait for 5 seconds. If they still don't wait, check how many bytes they read out of the socket, maybe whatever code that writes to the socket is broken and spams the socket with data.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Performance and CPU load: sysread, IO::Select and/or Storable::thaw
by DBX (Pilgrim) on Jun 29, 2010 at 19:42 UTC | |
by jethro (Monsignor) on Jun 30, 2010 at 09:47 UTC | |
by DBX (Pilgrim) on Jun 30, 2010 at 13:49 UTC |