java - VisualVM - Windows 8 中的内存采样 - Tomcat 7 作为服务

标签 java tomcat7 visualvm jvisualvm

我正在使用 VisualVm 在 Web 应用程序中进行一些分析,但“采样器”选项卡中的内存按钮被禁用。

我使用的是 Windows 8、Tomcat 7、VisualVM 1.7.0_09(内部版本 120605)和 JDK 1.6.0_11

我尝试了一些(以当前用户身份运行 tomcat 服务,将 catalina 的温度设置为与 Visualvm 相同)解决方法,但似乎都不起作用,我在某处读到,在 vista 之后这似乎不起作用。

我可以对这种情况进行内存分析吗?

最佳答案

在完全相同的情况下,对我有帮助的是在本地 Tomcat 上使用相同版本的 Java JDK 和 Java JRE。原来我的 Tomcat 使用的是 JDK 1.6.0_45 和 JRE 1.6.0_20。

要检查系统上的 JRE 版本,请打开控制台并写入“java -version”
要检查系统上的 JDK 版本,请打开控制台并写入“javac -version”

创建两个指向您的 JDK 和 JRE 位置的系统变量,例如:
JAVA_HOME 变量,路径为“C:\Program Files\Java\jdk1.6.0_45”
路径为“C:\Program Files\Java\jre6”的 JRE_HOME 变量

编辑“Path”系统变量并将此字符串添加到其值的末尾:“%JAVA_HOME%/bin;%JRE_HOME%/bin”

重新登录您的系统,您的系统变量现在将起作用。

Tomcat 将自动使用这些系统变量,如 catalina.bat 的注释部分所述:

JAVA_HOME       Must point at your Java Development Kit installation.
                Required to run the with the "debug" argument.

JRE_HOME        Must point at your Java Runtime installation.
                Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
                are both set, JRE_HOME is used.

转到文件夹 tomcat\bin 并运行“catalina.bat”文件以检查 JRE_HOME 变量设置是否正确。

提示:如果 Tomcat 的 bin 文件夹中有一个“setenv.bat”文件,请确保其中没有类似“set "JRE_HOME=..."”的内容,因为它会覆盖您的系统变量,而您不希望这样。

完成所有设置后,转到 VisualVM -> 双击 Tomcat 实例 -> 概述 -> 系统属性 -> 将其复制到某个文本编辑器并搜索“jdk”和“jre”单词。它们旁边的版本现在应该匹配。

内存分析现在应该可用。

关于java - VisualVM - Windows 8 中的内存采样 - Tomcat 7 作为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429687/

相关文章:

java - 什么是反射以及为什么它有用?

java - 使用 cxf web 服务上传大文件时出现内存不足错误

java - 虽然我在服务器中启用了 Java,但我面临着 java 路径问题

java - Java 中的线程

scala - Akka IO 应用占用 100% CPU

java - 如何从maven运行tomcat?

java - Tomcat 7 CometProcessor 上缺少 cometd 事件

java - 如何将 Java 应用程序从 Tomcat 7/8/9 迁移到 Tomcat 10

java - VisualVM 没有反射(reflect)正确的元空间大小?

java - 为什么 VisualVm 和 JOL 工具对对象大小给出不同的结果