我试图剖析我的Java应用程序,只是为了找出大部分时间花在哪些方法上。鉴于对TPTP的反应不佳,我想我会给Java VisualVM一个去。在Java VisualVM中看不到我自己的应用程序方法
这一切似乎都相当简单 - 除了我似乎无法得到任何一致或有用的东西外。
我似乎无法看到与我自己的代码有关的任何东西 - 我得到的只是一大堆调用java *。方法之类的东西。
我试过限制仪器只有我自己的软件包,这似乎减少了仪器的方法数量,但我似乎从来没有看到我自己的。
每次运行时,我都会收到不同数量的方法,从10到1000不等。 我已经尝试在我的应用程序的开始时进入睡眠状态,以确保在应用程序开始执行任何有趣的操作之前启动并运行VisualVM,以确保它在有趣的东西运行时进行分析。
有什么我必须做,以确保我的课得到仪器? 是否有计时问题? ..喜欢,必须等待类加载等? 我也尝试了两次运行代码的胆量,以确保所有的代码都得到了锻炼...
我只是在Eclipse中运行一个带有main的应用程序。我尝试过使用Eclipse集成,以便在启动应用程序时启动VisualVM - 结果相同。 我也尝试将应用程序导出为可运行的应用程序,并从命令行单独运行,而不是通过Eclipse运行 - 结果相同。
我的应用程序不是一个长时间运行的web应用程序等 - 只是一个主要调用我自己的一些其他类来做一些处理,然后退出。
我很感激任何关于我可能做错的建议! :)
谢谢!
我不知道这是否会有所作为,但是您是否编译了没有任何调试信息的应用程序?或者你的应用程序使用自定义类加载器? – 2010-07-14 04:02:54
有一个小小的教训,但简单而有效的技术:http://stackoverflow.com/questions/266373/one-could-use-a-profiler-but-why-not-just-halt-the-program/317160# 317160 – 2010-07-14 11:59:24