Java 如何克服由Vaadin ScssCache造成的堆堆?

Java 如何克服由Vaadin ScssCache造成的堆堆?,java,sass,vaadin,heap-memory,heap-dump,Java,Sass,Vaadin,Heap Memory,Heap Dump,我使用Vaadin创建了一个应用程序,该应用程序具有各自的UI 我运行的服务器的最大heapload为250 Mb。应用程序因heapload而崩溃,因为它未被垃圾收集 我尝试使用visualVM分析器运行。发现有很多实例,不知怎么的,瓦丁ScssCache把这搞得一团糟 如何纠正此错误?这是因为浏览器缓存设置,还是我应该对vaadinservletcache项执行某些操作 我真的不明白,请帮忙。我已附上我的VisualVm屏幕截图供参考。非常感谢你。我正在使用vaadin 7.6.3 随附的V

我使用
Vaadin
创建了一个应用程序,该应用程序具有各自的UI

我运行的服务器的最大heapload为250 Mb。应用程序因heapload而崩溃,因为它未被垃圾收集

我尝试使用
visualVM
分析器运行。发现有很多实例,不知怎么的,瓦丁ScssCache把这搞得一团糟

如何纠正此错误?这是因为浏览器缓存设置,还是我应该对vaadinservletcache项执行某些操作

我真的不明白,请帮忙。我已附上我的VisualVm屏幕截图供参考。非常感谢你。我正在使用vaadin 7.6.3


随附的VisualVM屏幕截图显示整个
scssCache
保留1248kb的内存,其中1200kb用于实际缓存的CSS内容。这不到250mb堆大小的1%,很可能不是问题所在

带有已编译CSS的1200kb
char[]
可能是堆中最大的单个对象,但只有一个这样的对象。因此,您将不得不寻找消耗大量内存的其他内容。我建议查看按保留大小排序的类列表,忽略低级类,例如
char[]
java.lang.String
java.Util.HashMap
,而是尝试找出与您自己的应用程序相关的任何内容


我还鼓励您验证您的应用程序是否实际在生产模式下运行,因为我可以识别的唯一代码路径是通过
VaadinServlet.serveOnthefLycompiledCSS
,它检查生产模式是否已启用,在这种情况下,在触摸缓存。

它拥有1.2MB的有效CSS,可在启动时提供给每个客户端。你认为这里发生了什么错误?您的应用程序/vaadin servlet是否在生产模式下运行?是的,它正在生产模式下运行。它可以正常工作几分钟,然后逐渐增加,垃圾收集器不清除它。那么这个屏幕截图是在开始时完成的吗?在应用程序转储内核之前,该缓存增长到什么程度?