我想知道如何确定独立应用程序以及在tomcat服务器上运行的webapp所需的堆大小。
如何在服务器上部署后确定相同内容。
感谢。
答案 0 :(得分:3)
您可以从分析内存使用情况开始。例如,JDK(6个向上)有Visual VM。我个人更喜欢的工具是Eclipse Memory Analyzer,最初来自SAP,现已开放。您可以分析堆转储或将其挂接到您选择的Java进程。
要以编程方式创建堆转储,您可以使用this
答案 1 :(得分:2)
IBM建议用于调整Java堆大小的规则,它适用于IBM SDK,但我不认为其他SDK的这些设置会有太大差异。
调整Java堆的大小,以便应用程序以最小的堆运行 使用率为40%,最大堆使用率为70%。
答案 2 :(得分:0)
我们在VM上使用-Xloggc:gc-log.txt
和-XX:+PrintGCdetails
选项,让它运行一段时间(天)并使用高Xmx设置,然后您可以使用GCViewer来渲染图表日志并了解何时消耗了多少RAM,即是否有峰值,达到限制,GC的负载减慢App等等。