我正在使用 VisualVm 在 Web 应用程序中进行一些分析,但在 Sampler 选项卡中禁用了内存按钮。
我正在使用 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 位置的系统变量,例如:路径为“C:\Program Files\Java\jdk1.6.0_45”的
JAVA_HOME 变量 路径为“C:\Program Files\Java\jre6”
的 JRE_HOME 变量
编辑“路径”系统变量并将此字符串添加到其值的末尾:“%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”字样。它们旁边的版本现在应该匹配。
内存分析现在应该可用。