Java:Byte数组为webapp使用了超过50%的内存
我正在开发一个基于SpringMVC的应用程序,该应用程序部署在ApacheTomcat上的DebianWheezy64位Java-8x64上。当我开始分析时,我注意到字节数组被大量使用。 这正常吗 其次,我为GC设置了一些选项,如下所述。基于此,我看到了堆图,如您在屏幕截图中所看到的。我不明白的是,如何解释这个图表?它是否应该有尖刺,是否应该更像一个高原,等等 catalina.sh中的配置:Java:Byte数组为webapp使用了超过50%的内存,java,arrays,spring,tomcat,architecture,Java,Arrays,Spring,Tomcat,Architecture,我正在开发一个基于SpringMVC的应用程序,该应用程序部署在ApacheTomcat上的DebianWheezy64位Java-8x64上。当我开始分析时,我注意到字节数组被大量使用。 这正常吗 其次,我为GC设置了一些选项,如下所述。基于此,我看到了堆图,如您在屏幕截图中所看到的。我不明白的是,如何解释这个图表?它是否应该有尖刺,是否应该更像一个高原,等等 catalina.sh中的配置: CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UsePara
CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=port_number -Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false"
VisualVM分析工具的屏幕截图:
下面是字节数组消耗量:
我希望我的问题是清楚的。非常感谢 内存中较大的
byte[]
s通常是将大量内容从磁盘加载到内存中的结果,尤其是图像。@ControlAltDel:我们有很多临时对象,但没有一个加载到内存中。我们有一个Comet,它是推送通知或推送消息框架。