Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在不使用外部工具的情况下评测java应用程序?_Java_Visualvm - Fatal编程技术网

有没有一种方法可以在不使用外部工具的情况下评测java应用程序?

有没有一种方法可以在不使用外部工具的情况下评测java应用程序?,java,visualvm,Java,Visualvm,外部工具给我带来了麻烦。有没有一种方法可以在不使用外部gui工具的情况下获得每个函数的简单cpu使用率/时间 我一直在尝试用VisualVM评测我的java程序,但我得到了可怕的、令人心碎的、扼杀雄心壮志的结果。它将只显示堆的使用情况,我感兴趣的是CPU的使用情况,但该面板只是说不支持这个JVM。顺便说一下,没有告诉我要使用哪个JVM。我已经下载了JDK 6并使用它启动了它,我确保我的程序针对相同的VM,但没有!仍然是相同的、没有帮助的错误消息。 我的需求很简单。我只是想知道这个项目的时间花在哪

外部工具给我带来了麻烦。有没有一种方法可以在不使用外部gui工具的情况下获得每个函数的简单cpu使用率/时间

我一直在尝试用VisualVM评测我的java程序,但我得到了可怕的、令人心碎的、扼杀雄心壮志的结果。它将只显示堆的使用情况,我感兴趣的是CPU的使用情况,但该面板只是说不支持这个JVM。顺便说一下,没有告诉我要使用哪个JVM。我已经下载了JDK 6并使用它启动了它,我确保我的程序针对相同的VM,但没有!仍然是相同的、没有帮助的错误消息。
我的需求很简单。我只是想知道这个项目的时间花在哪里。Python有一个优秀的内置分析器,它可以打印出每个函数花费的时间,包括每次调用和总时间格式。这才是我现在想要的。有人有什么建议吗?

这不太好,但您可以通过在命令行中添加一个开关来使用内置的hprof评测机制

-Xrunhprof:cpu=times
有很多选择;有关更多信息,请参见Oracle文档页面

例如,如果您有一个要评测的可执行jar,您可以键入:

java -Xrunhprof:cpu=times -jar Hello.jar
运行完成后,您将有一个名为“java.hprof.txt”的(大)文本文件

该文件将包含一堆有趣的数据,但您要查找的部分是开始的部分:

CPU TIME (ms) BEGIN (total = 500) Wed Feb 27 16:03:18 2013
rank   self  accum   count trace method
   1  8.00%  8.00%    2000 301837 sun.nio.cs.UTF_8$Encoder.encodeArrayLoop
   2  5.40% 13.40%    2000 301863 sun.nio.cs.StreamEncoder.writeBytes
   3  4.20% 17.60%    2000 301844 sun.nio.cs.StreamEncoder.implWrite
   4  3.40% 21.00%    2000 301836 sun.nio.cs.UTF_8.updatePositions
或者,如果您还没有这样做,我将尝试安装VisualVM扩展、VisualGC、Threads Inspector,以及至少Swing、JVM、Monitor和JVStat跟踪程序探测


转到工具->插件安装它们。如果您需要更多详细信息,请发表评论,我将进一步扩展此答案。

如果没有外部工具,我看不到任何方法可以做到这一点。你真的只是在寻找那些,或者仅仅是那些能满足你要求的,而不是VisualVM的建议吗?@sharakan-好吧,我会接受那些有效的建议。我曾希望有一种“pythonic”,其中
main()
是分析器的一个参数,分析器随后简单地执行程序并输出结果,但如果不存在这样的东西,我愿意接受任何可行的建议。可能的解决方法是使用visualvm插件:Arg。。我不明白。我试着使用你的建议,以及你链接的父系中的一些建议,它所说的一切都是
通过采样正在运行的线程来转储CPU使用率。。。完成。