想象一下,您有一个命令行应用程序,它接受输入文件并对其执行任何操作。现在想象你想要采样/分析这个应用程序。如果是Visual Studio,您只需选择性能分析方法(采样/检测),VS将为您运行应用程序并在程序完成时收集数据。但据我所见,VisualVM中没有类似的功能。您必须运行您的应用程序,然后在VisualVM中选择它,然后明确开始采样/分析。问题在于,有时使用某些输入数据执行程序比使用VisualVM所需的时间少。同样采用这种方法,不可能批量配置文件应用程序。有人建议以Eclipse的调试模式启动应用程序,并在main()方法的开始处设置断点。然后设置VisualVM并继续执行。但我怀疑在Debug和Release模式下运行会对性能产生影响。 建议?使用VisualVM进行性能分析应用程序
3
A
回答
1
VisualVM 1.3.6有一个新的Startup Profiler plugin,允许您从应用程序启动时对应用程序进行分析。有关更多信息,请参阅此article。
1
如果程序执行I/O操作,Visual Studio采样器将不会看到I/O,因为它是“CPU采样器”(即使几乎所有的时间都花在等待I/O上)。
如果使用Instrumentation,则不会看到任何行级别的信息,因为它只在功能级别进行汇总。我使用this technique。
如果程序运行得太快而无法采样,只需在其周围放置一个临时外循环,例如100或1000次迭代。
调试和发布模式之间的差别将是微乎其微,除非你在你的代码,在毛圈不包含任何函数调用,或花费时间的好分数紧密循环,如果你正在做数据结构操作在库中做了大量验证。
如果你是,那么你的样品将显示你是,你会知道,释放会产生速度差。
就批处理分析而言,我没有。我只是留意程序的整体吞吐率。如果有一些输入似乎会使其耗时太长,那么我会使用该输入在程序上执行采样过程,查看问题所在,然后解决问题。
相关问题
- 1. 使用VisualVM分析tomcat应用程序
- 2. 用visualvm分析Tomcat web应用程序
- 3. maven/visualvm:我如何使用visualvm来分析正在运行的surefire进程?
- 4. 使用堆栈进行性能分析
- 5. 使用profiler4j进行性能分析
- 6. 使用Graphite进行性能分析
- 7. java应用程序的性能分析
- 8. Android应用程序的性能分析。
- 9. 使用VisualVM监控Java应用程序
- 10. 使用VS进行性能分析时出错:无法打开性能分析器驱动程序
- 11. 如何使用visualVM剖析java应用程序?
- 12. 使用Rails应用程序进行数据分析
- 13. 使用API进行.NET性能分析器使用API
- 14. 使用The Grinder进行Web应用程序性能测试
- 15. VisualVM不能打开本地虚拟机进行分析
- 16. Java分析 - VisualVM
- 17. 使用VisualVM自动启动CPU分析
- 18. 使用VisualVM分析内存泄漏
- 19. 分析程序性能
- 20. 使用Mini Profiler对ASP.Net Web应用程序中的SQL相关操作进行性能分析的步骤
- 21. 使用ltrace分析Android应用程序
- 22. 使用YourKit分析Spark应用程序
- 23. 分析使用TopShelf的应用程序
- 24. AIX应用程序的性能改进。
- 25. 使用zeromq分析并行进程
- 26. 使用JVisualVM进行JVM远程分析
- 27. 使用堆栈进行性能分析构建
- 28. 在Linux上使用time.time()进行性能分析
- 29. 使用可视化虚拟机进行性能分析
- 30. 在CPU时间使用fprof进行erlang性能分析