我有Spring应用与顶部命令表示接着在Amazon EC2上的小实例(1.7 GB RAM)的数据 -Spring的web应用程序内存分析怀疑
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5019 ubuntu 20 0 1971m 446m 17m S 4.7 27.0 31:25.61 java
这是采取446 MB的内存仅用于引导软件我有大约350个类,并且有Maven作为依赖关系引入了库。
free -m
total used free shared buffers cached
Mem: 1656 1642 14 0 34 519
-/+ buffers/cache: 1088 568
Swap: 895 12 883
Maven的Spring的依赖在那里 -
Spring Core, Spring MVC, Spring Data , Spring Data Rest, , Spring
Security, Spring HATEOAS, Spring Boot, Spring Oauth , Spring-Vaadin
我这个内存占用比较詹金斯是采取277 MB总,但我的测试应用程序显然需要+400 MB没有显著运行任何东西。
此时代码只有Entities和Spring Data Rest。 我做了一个堆转储分析,这表明休眠了15 MB的PID从应用程序顶级消费(使用JMAP拍摄)
Used heap dump 76.9 MB
Number of objects 1,785,039
Number of classes 12,546
Number of class loaders 245
Number of GC roots 2,589
Format hprof
在MAT节目最大的顶级霸主类加载器的报告 -
org.eclipse.jetty.webapp.WebAppClassLoader @ 0xf00f8bb0 - 45 MB - 56.91%
- 请问一般Spring Web应用程序采取+400 MB只是 以上时库添加为依赖启动和使用命令mvn码头运行 :运行?
- 这里堆占用由JMAP虽然top命令显示为77 MB显示+400 MB,为什么他们不匹配,因为它们都是相同的PID 5019