哪种分析器更适合通用分析和堆分析?我们90%的应用程序都是独立的命令行程序,具有大量的数据库和数字处理功能.另外10%是webapps/servlet容器应用程序(JSP和NO SCRIPLETS很少!).目标用户将是具有5 - 10年行业经验的高级软件工程师.我们只需要Sun JDK 5和.
截至撰写此问题(2008-10-02)时,JProfiler为5.1.4,YourKit为7.5.看起来像YourKit 8.0即将发布.
我正在使用jProfiler在Java swing应用程序中查找内存泄漏.我已经确定了JFrame的实例,它在数量上不断增长.
此框架打开,然后关闭.
使用jProfiler,并查看GC根路径,只有一个参考,'JNI全局参考'.
这是什么意思?为什么它挂在框架的每个实例上?
我正在寻找一个Java代码分析器,我可以用它来分析我的应用程序(它是一个在后端运行的服务)生产(所以意味着低头,它不能减慢我的应用程序).主要是我想调用树分析,也就是说a()调用b()然后b()调用c(),然后a()b()和c()花了多少时间,包括和包含.
见过jvisualvm和jprofiler,但这不是我所期待的,因为我不能配合我的生产应用程序到他们,因为它会造成重大的性能问题.
此外,我确实通过了metrics(https://github.com/dropwizard/metrics),但它没有给我一个功能来分析调用树.
Callgrind(http://valgrind.org/docs/manual/cl-manual.html)类型库是我需要的,因为它提供了调用树分析功能和高级选项,如避免调用循环(递归).但是我不确定Callgrind是否可以用于生产,因为它会在程序终止时转储数据.
任何人都可以建议用于java的好的调用树分析器,可以在不影响性能的情况下用于生产吗?
我们的一个项目有时会得到一个 OutOfMemory在一个用户的计算机上出错,但当然不是在我测试它时.我只是用JProfiler运行它(在10天的评估许可证上,因为我之前从未使用它),并且对我们的代码前缀进行过滤,总大小和实例数量中最大的块是特定简单类的8000多个实例.
我点击了JProfiler上的"Garbage Collect"按钮,我们其他类的大部分实例都消失了,但不是这些特殊的.我再次运行测试,仍然在同一个实例中,它创建了4000多个类的实例,但是当我点击"垃圾收集"时,那些离开了8000多个原始实例.
这些实例在各个阶段都会遇到各种集合.我认为它们不是垃圾收集的事实必然意味着某些东西持有对其中一个集合的引用,以便保持对对象的引用.
有什么建议我如何弄清楚什么是持有参考?我正在寻找在代码中寻找什么的建议,以及如果有的话在JProfiler中找到它的方法.
我无法将jprofiler 7集成到Eclipse Indigo中.安装和集成成功完成.但我无法在Eclipse IDE或Eclipse首选项中找到jprofiler.
启动jprofiler没有问题,但是我的Eclipse安装中缺少它.
谢谢 :-)
我广泛使用jProfiler,它是一个很棒的工具,但我想知道jProfiler如何处理JIT编译的效果.
我能观察到例如内联方法吗?如果内联方法,它根本不会在快照中可见,或者jProfiler仍能计算其执行时间吗?
类似地,jProfiler中也不会显示没有副作用且可以完全优化的方法.它是否正确?
我经常在很长的预热时间后对我的应用程序进行分析,因此我希望代码可以在可能的情况下进行JIT /优化.因此,我怀疑应该优化并且在配置文件中可见的方法对我来说总是一个很大的谜.
有多种工具可用于CPU和内存分析,jvisualvm在这些中是相当新的.
这些工具之间是否有任何比较/基准?哪个工具比其他工具好?
我有很多中等复杂的Java/JSP应用程序的工作,不知道会是什么做用说的JMeter在使用的JProfiler/NetBeans配置分析性能测试的一个额外的好处.如果有人提供任何相同的建议,将非常感谢.
JProfiler提供实时调用树视图,因此您可以实时查看使用CPU的内容并深入了解详细信息.随时将计数重置为零,冲洗,重复.
我目前没有这个工具,并试图通过免费/开放替代方案.jvisualvm和NetBeans探查器具有静态快照调用树和实时平面视图.似乎有理由会有一个实时的调用树视图(或作为一个插件),但我似乎找不到一个.
这种功能仅适用于商业分析器吗?
谢谢.
我有一个在我的localhost上运行的应用程序,我想分析应用程序,看看如何增强应用程序的性能.我正在按照定义执行设置步骤,但它无法连接到localhost服务器,是否有适当的分步指南可用于如何:
我有与此问题类似的问题,但我无法理解解决方案,对此的任何建议都将非常感激.
我现在尝试了一段时间没有成功配置JProfiler来处理在localhost上运行的应用程序,任何建议都将受到高度赞赏.
我是分析应用程序世界的新手,所以如果你能提供一些有用的指针,我将非常感激
我收到以下错误消息:
Could not connect to 127.0.0.1:8849. Please make sure that the remote address is correct, the remote program is started properly, and the network route allows socket connections. 我已经使用新服务器集成设置了配置,不确定还需要做什么以及如何解决这个问题.
添加-agentpath:C:\Users\user~1.DOS\SOFTWA~1\JPROFI~1\bin\WINDOW~1\jprofilerti.dll=port=8849,nowait,id=117,config=C:\Users\user\.jprofiler6\config.xml到vm arguments运行配置后,然后当我运行配置我得到
JProfiler> Protocol version 32
JProfiler> Using JVMTI
JProfiler> JVMTI version 1.1 detected.
JProfiler> 64-bit library
JProfiler> Don't wait for frontend to connect.
JProfiler> Using config file C:\Users\user\.jprofiler6\config.xml (id: 117)
JProfiler> Could not find session with …Run Code Online (Sandbox Code Playgroud)