我们有一个Web应用程序,我们需要为客户更轻松地部署它们.新安装的当前工作流程:
这对我们的用户来说是一个繁琐的过程,我想将它封装到一个安装程序中,并且一直在NSIS中看到这样做,这似乎有一个庞大的社区,但后来偶然发现了install4j,虽然看起来鲜为人知,但更多特定于基于java的应用程序.
只是想从更多经验丰富的用户那里得到一些平台上最佳选择的反馈.
我不想半途而废,然后意识到我选择了错误的安装平台.
当我分析时,我可以看到一些ms的数据(毫秒),但我也看到μs.μs在JProfiler中意味着什么?
我们使用相当多的ExecutorServices运行服务.
在使用jProfiler 7.1(sampling,Runnable)分析服务时,我们可以看到sun.misc.Unsafe.park + unpark当前是使用热点中大部分CPU时间的调用.
http://i.stack.imgur.com/wT2Cj.jpg
这令人费解.
Park和unpark应该是阻塞的,因此不使用任何CPU周期(或至少少量).这是来自jprofiler的某种错误(即没有检测到它,因为它在sun.misc包中吗?)或者我们使用ExecutorService框架实际上有什么问题吗?
我是Tomcat的新手,只是用jprofiler配置我的tomcat.但是现在无法停止tomcat服务器,收到以下错误信息.
[root@localhost bin]# service tomcat stop
Stopping .
Using CATALINA_BASE: /data/applications/apache-tomcat-6.0.26
Using CATALINA_HOME: /data/applications/apache-tomcat-6.0.26
Using CATALINA_TMPDIR: /data/applications/apache-tomcat-6.0.26/temp
Using JRE_HOME: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
Using CLASSPATH: /data/applications/apache-tomcat-6.0.26/bin/bootstrap.jar
JProfiler> Protocol version 35
JProfiler> Using JVMTI
JProfiler> JVMTI version 1.1 detected.
JProfiler> 32-bit library
JProfiler> Listening on port: 8849.
JProfiler> Instrumenting native methods.
JProfiler> Can retransform classes.
JProfiler> Can retransform any class.
JProfiler> Native library initialized
JProfiler> VM initialized
JProfiler> Waiting for a connection from the JProfiler GUI ...
JProfiler> ERROR: Could not bind socket.
\n\nTomcat …Run Code Online (Sandbox Code Playgroud) 我最近阅读了Jeremy Manson(谷歌)的一篇博客文章,内容是关于如何使用更准确,更轻量级的异步采样分析器.它依赖于热点JVM中的"AsyncGetCallTrace"未记录方法来收集线程的堆栈跟踪.
http://jeremymanson.blogspot.fr/2013/07/lightweight-asynchronous-sampling.html
我对JProfiler社区的问题是:JProfiler在其当前的7.2.3版本中是否可以使用AsyncGetCallTrace?这个功能是否适用于JProfiler 8.0?
我有安装 jprofiler 的 Linux 系统。
我必须一起分析位于同一 Linux 系统上的一台正在运行的服务器和一台客户端。我正在从客户端向服务器发送 100 多个不同的请求。
我的查询是:
为了分析 jprofiler 输出,我将在窗口系统上复制并使用 GUI jprofiler。
提前致谢,
编辑-1
我可以从下面自动执行分析程序步骤 4 和 5。以下所有步骤是否正确?
按照您在回复中的建议使用 GUI 配置会话(会话-> 集成向导-> 新建远程集成)
按照您在回复中的建议(会话-> 导出会话设置)使用 GUI 导出会话。
将 config.xml 从窗口复制到运行 jvm 的 Linux。
在 linux 系统中运行 jpenable 如下: jpenable --pid=8568 --noinput --offline --config=/home/myuser/config.xml --id=106
在 Linux 系统中运行 jpcontroller 如下所示并保存快照:jpcontroller 8568
将 Linux 系统的快照输出复制到窗口并使用 jprofiler 打开快照(会话-> 打开快照)以进行进一步分析。
编辑-2
-agentpath VM 参数添加到启动脚本中而不是使用我的第 4 …
最近我一直在努力优化一些代码(需要计算时间和最大内存).要知道是否存在优化内存成本的潜在收益,我使用JProfiler.通常
现在,我处于第二种情况,GC活动图显示了峰值,但都低于2%(见下图).我该怎么理解?
默认情况下,我的理解是GC活动曲线的总和/积分是用于收集数据的CPU总百分比的估计值.所以在这里意味着远远低于最大2%
这是正确的吗?我错过了什么吗?
我检查了 Java 应用程序的当前内存行为,我注意到垃圾收集器最初很少运行,但在很长一段时间内它会继续更频繁地运行,即使我没有设置最大内存使用量限制(服务器有 8Gb 的空闲内存)。
最初 GC 每 20 分钟运行一次,15 小时后每分钟运行一次,但应用程序做同样的事情并且 RAM 使用量没有峰值。
继续运行GC,消耗越来越多的CPU,24小时后,CPU使用率为85%,GC每10秒运行一次。
以下是演出截图:
Jprofiler 运行 14 小时

JvisualVM 运行了最后一个小时

JvisualVM - 高 CPU 使用率

为什么即使内存非常低,GC 也会启动?它不应该在这些情况下开始。
可能是什么原因或我应该怎么做来调查这种行为?
我正在使用 JProfiler 分析部署到 Jetty 服务器的 Java 应用程序。
右侧是此 Java 进程在 Windows 任务管理器上的总内存。
我正在尝试分析MAT中的堆转储,但是当我点击堆时,我收到错误"无法找到JProfiler可执行文件".我的电脑上已经卸载了JProfiler.我不希望它再与Eclipse集成.
所有谷歌搜索结果都讨论了如何将JProfiler集成到Eclipse中.我正试图做相反的事情.