【发布时间】:2011-03-15 15:50:18
【问题描述】:
我正在尝试分析我的 java 应用程序,只是为了找出花费最多时间的方法。鉴于这里对 TPTP 的反应不佳,我想我应该试试 Java VisualVM。
这一切似乎都相当简单易用 - 除了我似乎无法从中获得任何一致或有用的东西。
我似乎看不到任何与 MY OWN 代码相关的内容 - 我得到的只是一大堆对 java.* 方法之类的调用。
我尝试将检测仅限于我自己的包,这似乎减少了检测方法的数量,但我似乎仍然没有看到我自己的。
每次运行时,我都会检测到不同数量的方法,从 10 到 1000 不等。 我尝试在我的应用程序启动时进入睡眠状态,以确保在我的应用程序开始执行任何有趣的事情之前启动并运行 VisualVM,以确保它在有趣的东西运行时进行分析。
我必须做些什么来确保我的课程得到仪表化吗? 有时间问题吗? ..like,必须等待类被加载等? 我还尝试过两次运行代码的核心,以确保所有代码都得到执行...
我只是在 Eclipse 中运行一个带有 main 的应用程序。我尝试使用 Eclipse 集成,以便在我启动应用程序时启动 VisualVM - 结果是相同的。 我还尝试将应用程序导出为可运行的应用程序,并从命令行独立运行,而不是通过 Eclipse - 结果相同。
我的应用程序不是一个长时间运行的网络应用程序等 - 只是一个调用我自己的其他类进行一些处理然后退出的主程序。
对于我可能做错的任何建议,我将不胜感激! :)
谢谢!
【问题讨论】:
-
我不知道这是否会有所不同,但是您是否在没有任何调试信息的情况下编译了您的应用程序?还是您的应用程序使用自定义类加载器?
-
有一个简单有效的技巧:stackoverflow.com/questions/266373/…