我有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