我有一个Play Framework WebApp,需要很多一些hundret MB内存用于某些请求。
这些内存密集型操作不会经常发生(例如一天一次或两次),但不能移动到cronjob(或类似的东西),因为用户发出请求并希望立即回答。 / p>
这一切看起来都很好,除了这个:我希望我的WebApp偶尔释放一些内存/堆空间,但是对于一些读取堆空间不断增长和增长。
我提供了以下两个内存限制参数:
xcode-select --install
我的堆使用情况如下:
堆大小增长到1.6 gb (这是WebApp使用的最大内存量),即使“Used heap”回落到大约150-200 mb,它也不会被释放,在GC完成其工作之后,这似乎是“闲置水平”。
VisualVM提供“Process GC”按钮以手动启动垃圾收集。如果我这样做,堆空间被释放:
我应该选择另一个GC策略或“帮助”JVM以某种方式理解它需要执行GC吗?有没有办法实现自动化?