我基本上有一个UNIX进程在运行,它是做一些繁重的处理,以及通过网络输出数据。我想知道用什么系统调用来与网络层进行交互。性能工具
我想衡量这一过程的性能指标:CPU使用率,网络使用率。我不确定这个过程是否被阻塞,因为它写入网络层的速度太快,或者如果这个过程花费了太多的时间处理代码。
有什么建议吗?
谢谢!
我基本上有一个UNIX进程在运行,它是做一些繁重的处理,以及通过网络输出数据。我想知道用什么系统调用来与网络层进行交互。性能工具
我想衡量这一过程的性能指标:CPU使用率,网络使用率。我不确定这个过程是否被阻塞,因为它写入网络层的速度太快,或者如果这个过程花费了太多的时间处理代码。
有什么建议吗?
谢谢!
你真正需要的是一个分析器。这样,您就可以看到代码的哪些部分花费了大部分时间。
尝试http://oprofile.sourceforge.net/,或为你的工具链的特定分析器。
作为一个快速的测量,你可以尝试运行strace下你的进程,看看哪些系统调用它使,看现场,他们需要多长时间。
什么是Unix? Solaris/FreeBSD/OSX有dtrace,Linux有oprofile。他们都有tcpdump供你分析网络流量。
对,我不知道为什么我认为他使用Linux并且拥有代码。 –
我建议的valgrind这是另一种分析器。
你的问题将在http://serverfault.com上更好地服务。 – Randolpho
你正在调试你自己的一些代码吗?如果是这样,更多的细节将是有用的。否则,serverfault.com真的是你想要的地方。 –