使用 JProfiler,是不是有推荐的策略来确定应用程序是 CPU 还是网络绑定?

Posted

技术标签:

【中文标题】使用 JProfiler,是不是有推荐的策略来确定应用程序是 CPU 还是网络绑定?【英文标题】:Using JProfiler, is there a Recommended Tactic to determine whether app is CPU or Network-bound?使用 JProfiler,是否有推荐的策略来确定应用程序是 CPU 还是网络绑定? 【发布时间】:2015-06-26 19:06:58 【问题描述】:

标题提出了问题的症结所在。此外,如果 JProfiler 中有一些漂亮的图形可以说明慢速应用程序是 CPU、内存还是网络绑定,那么我也想知道这一点。

我怀疑 RTFM 会有所帮助,但它是 TL;DR。但是,我正在运行 JProfiler 并试图偶然发现解决方案。

我可以看到正在测量的应用程序的线程活动,是的,一些工作线程偶尔会出现蓝色的网络 I/O 空闲 - 但不足以解释应用程序的广泛网络通信正在表演中。

除了在 CPU 上运行的代码的热点统计信息之外,还有其他方法可以查看 CPU 时间与整体挂钟时间及其与网络和内存使用时间的关系如何?

【问题讨论】:

【参考方案1】:

CPU 调用树和热点视图的右上角有一个线程选择器。默认情况下,它设置为“Runnable”,但您可以将其更改为“Net I/O”并比较不同线程状态的调用树或热点。

【讨论】:

以上是关于使用 JProfiler,是不是有推荐的策略来确定应用程序是 CPU 还是网络绑定?的主要内容,如果未能解决你的问题,请参考以下文章

Apple 是不是提供了一种方法来确定为啥不推荐使用特定代码?

JProfiler 入门教程

JVM调优总结:推荐几款不错的调优工具?

使用 jProfiler 生成调用图

如何使用 jprofiler9 分析 Java 服务器应用程序?

如何使用 JProfiler 自定义探针遥测来监控 Guava 缓存统计信息