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