На какой вызов (ы) процесс блокируется? - PullRequest
0 голосов
/ 10 января 2019

У меня есть программа, которая должна быть привязана к процессору, но она использует процессор менее чем на 100% и не потребляет ввод данных так быстро, как может. Это означает, что мой процесс где-то блокируется или спит.

Как узнать, какие звонки блокируют мой процесс в большинстве случаев? Существует ли инструмент или процедура отладки, которая измеряет время, в течение которого процесс спит при каждом системном вызове блокировки?

1 Ответ

0 голосов
/ 10 января 2019

strace является опцией:

$ strace -wc sleep 1
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 99.96    1.000146     1000146         1           nanosleep
  0.01    0.000131         131         1           execve
  0.01    0.000082          10         8           mmap
[...]
...