Jos*_*eal 15 java profiler scala visualvm
正如我在运行Web应用程序5天后发布的性能下降,如何发现瓶颈?,我有一个问题,一个应用程序运行一段时间后变慢.
我让VisualVM运行并在不同时间之间创建了一个快照.现在应用程序真的很慢,但我不知道如何发现瓶颈.它们彼此之间没有太多差异,唯一增长的是Heap,它在一段时间后成功地被垃圾收集.
谁能给我一些指示?
以下是快照(应用):
[1] http://www.2shared.com/file/W4XJ6HtE/application-1314108550032.html
[2] http://www.2shared.com/fadmin/22521338/f512f97e/application-1314097232727.apps.html
谢谢!
编辑:仔细观察,我注意到CPU甚至没有被太多使用..系统真的很慢!
作为第一步,我建议确定究竟什么是慢的.它慢慢执行某项工作吗?或者展示处理来自不同客户的工作的低吞吐量?
什么资源不合适?
由于您已经确定哪个资源不合适以及您的程序中有哪些资源受到影响,您可以尝试找到要优化的代码段.使用随机工具并通过它运行您的应用程序而不知道要查找什么是没有意义的.
根据我的个人经验,当你只有一个慢速方法时,这是非常罕见的情况,可以通过分析器找到.很可能是在算法或错误的数据库模式中某处出现意外的IO和/或同步.
实际上,有一些比VisualVM更好的工具.
你可以尝试JProfiler,这是一个很好的探查器(但付费)
你可以试试Netbeans Profiler,这是免费的,效果很好
使用VisualVM,您只能看到应用程序的实际状态(内存和CPU使用情况,JMX,加载的类等).
| 归档时间: |
|
| 查看次数: |
8460 次 |
| 最近记录: |