java降低内存_java – 如何减少spring启动内存的使用?

这里游戏的后期不多,但我在Docker上遇到了容器化的

Spring Boot应用程序.在最简单的Spring Boot应用程序中,使用单个控制器和嵌入式Tomcat,您将获得的最小内存大约为72M.抛出Spring Data REST,Spring Security和一些JPA实体,你将看到最低200M-300M.通过使用以下JVM选项,您可以获得总计约72M的简单Spring Boot应用程序.

使用-XX:UseSerialGC这将执行内核的垃圾收集,线程分配堆内存而不是专用的GC线程

使用-Xss512k这会将每个线程堆栈内存限制为512KB而不是默认的1MB

使用-XX:MaxRAM = 72m这将限制JVM对堆和非堆管理内存的计算在此值的限制范围内.

除了上面的JVM选项,您还可以在application.properties文件中使用以下属性:

server.tomcat.max-threads = 5这会将HTTP请求处理程序线程数限制为1(默认值为50)

下面是一个docker stats的例子,它运行一个非常简单的Spring Boot应用程序,具有上述限制和docker -m 72m参数.如果我将值降低到低于此值,则无法启动应用程序.

83ccc9b2156d:内存使用:70.36MiB / 72MiB |记忆百分比:97.72%

在这里,您可以看到退出时所有本机和Java堆内存的细分.

Native Memory Tracking:

Total: reserved=1398681KB,committed=112996KB

- Java Heap (reserved=36864KB,committed=36260KB)

(mmap: reserved=36864KB,committed=36260KB)

- Class (reserved=1086709KB,committed=43381KB)

(classes #7548)

( instance classes #7049,array classes #499)

(malloc=1269KB #19354)

(mmap: reserved=1085440KB,committed=42112KB)

( Metadata: )

( reserved=36864KB,committed=36864KB)

( used=36161KB)

( free=703KB)

( waste=0KB =0.00%)

( Class space:)

( reserved=1048576KB,committed=5248KB)

( used=4801KB)

( free=447KB)

( waste=0KB =0.00%)

- Thread (reserved=9319KB,committed=938KB)

(thread #14)

(stack: reserved=9253KB,committed=872KB)

(malloc=50KB #74)

(arena=16KB #26)

- Code (reserved=248678KB,committed=15310KB)

(malloc=990KB #4592)

(mmap: reserved=247688KB,committed=14320KB)

- GC (reserved=400KB,committed=396KB)

(malloc=272KB #874)

(mmap: reserved=128KB,committed=124KB)

- Compiler (reserved=276KB,committed=276KB)

(malloc=17KB #409)

(arena=260KB #6)

- Internal (reserved=660KB,committed=660KB)

(malloc=620KB #1880)

(mmap: reserved=40KB,committed=40KB)

- Symbol (reserved=11174KB,committed=11174KB)

(malloc=8417KB #88784)

(arena=2757KB #1)

- Native Memory Tracking (reserved=1858KB,committed=1858KB)

(malloc=6KB #80)

(tracking overhead=1852KB)

- Arena Chunk (reserved=2583KB,committed=2583KB)

(malloc=2583KB)

- Logging (reserved=4KB,committed=4KB)

(malloc=4KB #179)

- Arguments (reserved=17KB,committed=17KB)

(malloc=17KB #470)

- Module (reserved=137KB,committed=137KB)

(malloc=137KB #1616)

不要指望得到任何不错的性能,因为我想象GC会经常运行这个设置,因为它没有很多备用内存可供使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值