инструмент производительности - PullRequest
1 голос
/ 15 сентября 2009

У меня в основном запущен процесс Unix, и он выполняет тяжелую обработку, а также выводит данные по сети. Мне было интересно, какие системные вызовы используются для взаимодействия с сетевым уровнем.

Я бы хотел измерить показатели производительности этого процесса: загрузка ЦП, использование сети. Я не уверен, что этот процесс заблокирован, потому что он слишком быстро записывает данные на сетевой уровень или этот процесс тратит слишком много времени на обработку кода.

Есть предложения?

Спасибо!

Ответы [ 3 ]

1 голос
/ 15 сентября 2009

Какой Unix? В Solaris / FreeBSD / OSX есть dtrace, в Linux есть oprofile. У всех них есть tcpdump для анализа сетевого потока.

0 голосов
/ 15 сентября 2009

Я предлагаю valgrind, который является другим профилировщиком.

0 голосов
/ 15 сентября 2009

Что вам действительно нужно, так это профилировщик. Таким образом, вы сможете увидеть, какие части вашего кода занимают больше всего времени.

Попробуйте http://oprofile.sourceforge.net/, или специальный профилировщик для вашего набора инструментов.

В качестве быстрого измерения вы можете попробовать запустить ваш процесс под strace , чтобы увидеть, какие системные вызовы он выполняет, и посмотреть, сколько времени они занимают.

...