On Sun, 17 Oct 2021, Bo Berglund via fpc-pascal wrote:

On Sun, 17 Oct 2021 00:43:51 +0200, Bo Berglund via fpc-pascal
<fpc-pascal@lists.freepascal.org> wrote:

timeout --signal=2 3s strace -f -c -p 488 -o tracelog2.log

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
46.47    0.348353         414       841           nanosleep
27.67    0.207437       17286        12           _newselect
16.17    0.121220         211       572        77 futex

So 90.3 % of the time is spent in these 3 syscalls...

Does this mean that:
_newselect is running for 207 ms during the 3 second test time?
(Which is 17 ms per call)

And what is _newselect in the first place?

Select (or _newselect) checks if there is activity on a file descriptor.
If you're working with Indy, it uses this call to check for data on a
socket; It is called frequently.

I assume nanosleep is some kind of Linux API call made by fpc when it invokes
sleep() in my code.

Yes.


And futex????

Futex is used for thread synchronisation. Again, if you're using Indy and threads, it is called a lot.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to