如何衡量Java开发的性能表现

7
有没有工具可以测量每个函数调用的执行时间,并找出给定开发Java J2SE项目的瓶颈?谢谢!
7个回答

9

使用性能分析工具,例如YourKitJProfilerHPROF(这是一个命令行工具)。


Note: 本段内容为关于使用性能分析工具的建议。

如何设置VisualVM:http://sysdotoutdotprint.com/index.php/2017/08/01/turn-profiler-java/ - mel3kings

4

1

1

0
Java JDK自带bin文件夹下的JVisualVM,一旦您的应用服务器(例如正在运行),您可以运行visualvm并将其连接到本地主机,这将为您提供内存分配并使您能够执行堆转储。

enter image description here

如需更详细的操作步骤,请参考以下链接:http://sysdotoutdotprint.com/index.php/2017/08/01/turn-profiler-java/


0
你可以尝试面向切面编程来截取每个方法调用并计算持续时间。

0

测量是可以的,但是它是一种非常间接的找到瓶颈的方法。一个非常直接的方法是这样的:只需多次按下ctrl-break,然后检查线程堆栈。

任何瓶颈都将是一行代码,几乎总是一个函数调用,并且它会经常出现在某个线程的堆栈上。它越糟糕,它出现的频率就越高。

只需寻找任何这样经常出现的代码行。如果你能想办法少调用它,甚至不调用它,你将节省大量时间,保证有效。这是为什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接