2009-09-15 2 views
1

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

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

Любые предложения?

Спасибо!

+0

Ваш вопрос будет лучше обслуживаться на http://serverfault.com. – Randolpho

+0

Вы отлаживаете собственный код? Если это так, более подробная информация будет полезна. В противном случае serverfault.com - это то место, где вы хотели бы быть. –

ответ

0

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

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

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

1

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

+0

Правильно, я не знаю, почему я предположил, что он использует Linux и что он владеет кодом. –

0

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

Смежные вопросы