我有一个使用套接字的应用程序,在服务器端运行java程序,而在客户端,运行C ++程序。
我想测量应用程序的CPU使用率。目前,我使用ctime c ++库提供的clock()函数来测量我的C ++程序的CPU使用率。它可能被视为一个天真的问题,但这不包括其子进程的CPU使用情况,包括服务器端Java程序,是吗?
如果不是这样,JConsole是否是测量Java程序CPU使用率的好工具?
答案 0 :(得分:3)
不,clock()不包括服务器端Java程序的CPU使用率。
您可以参考here获取可用的Java分析工具/分析器列表
答案 1 :(得分:0)
不幸的是,没有程序构建的功能可以执行此特定任务。
我建议您使用SIGAR API作为C ++,它非常适合检查CPU使用情况,还可以选择检查内存统计信息,但SIGAR API不用于多语言。
答案 2 :(得分:0)
如果您只想测量已终止子项的CPU使用率,则可以使用getrusage()
函数。如果要实时测量CPU使用率,则取决于您的操作系统。例如,如果您的* NIX系统支持/proc
,则可以解析/proc/<PID>/stat
中的数据。