+-

我注意到 Spring Boot应用程序不遵守通过Xmx选项设置的内存量.
例如:java -Xss64m -Xmx64m -jar test.jar
例如:java -Xss64m -Xmx64m -jar test.jar
我还在控制台上打印了启动时应用程序真正使用的内存量,并显示:
最大内存:61M
当我在访问任何网页之前打开Windows进程时,它显示-105M,那么Java如何说61M呢?
访问任何网页后,它从-125M到-135M.为什么会有这样的增加?它应该给出“java.lang.OutOfMemoryError:PermGen space”但不要增加这种方式.
如果许多应用程序可能在服务器上耗尽内存,这让我很担心.顺便说一句,我使用的是Java 1.8_45
最佳答案
在监视Spring Boot应用程序之后,我发现了一些可能的原因,例如:
> http线程数(Undertow每个开始大约50个线程
默认,但您可以通过属性增加/减少所需的线程数量)
>通过JNI访问本机例程(.dll,.so)
>静态变量
>使用缓存(memcache,ehcache等)
>如果VM是32位或64位,64位使用更多内存来运行相同的应用程序,因此如果您不需要大于1.5GB的堆,那么请保持应用程序运行超过32位以节省内存.
点击查看更多相关文章
转载注明原文:java – Spring Boot内存消耗增加超出-Xmx选项 - 乐贴网