2012-04-23 83 views
0

我在带有3GB RAM的Windows 7 SP1上使用tomcat 7。我正在使用一些自定义标记处理程序在JSP页面上显示数据,这些数据不断给我提供堆大小(内存不足)错误。netbeans中的Tomcat堆大小增加以及如何查找当前堆大小

我正在使用Netbeans 7.1作为开发IDE,我试图将-Xms256m -Xmx256m放在项目属性运行选项下的VM选项中。我不确定它是否会增加堆大小,有什么方法可以找出tomcat的当前堆大小?

或者我需要做其他的事情来增加堆大小?由于无法找到是否增加堆大小,我无法调试出现问题的地方,堆大小很小或者代码与我的代码有关。

+1

您是否尝试过使用jconsole? – 2012-04-23 08:05:33

回答

1

您可以使用工具,如VisualVM,以获取有关运行的虚拟机的一些信息。

+0

thanks for这个。相当有用的软件,实时告诉几乎所有需要的东西。 – Abhi 2012-04-23 08:30:03

1
public static String heapMemUsage() 
{ 
    long used = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); 
    long max = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax(); 
    return ""+used+" of "+max+" ("+ used/(double)max*100.0 + "%)"; 
} 
+0

在运行程序本身内部获取有关内存消耗的快速信息的简洁方法。 – magomi 2012-04-23 08:15:32

+1

如果你想从外面看,尝试使用探针:http://code.google.com/p/psi-probe/ – Woody 2012-04-23 08:25:56

+0

@Woody:谢谢,它从程序本身知道内存消耗相当有帮助 – Abhi 2012-04-23 08:31:00