Reg*_*00x 29 java eclipse memory-management java-8
我运行Eclipse 4.3
了Java 7 JRE
.当我升级到a时Java 8 JRE
,Eclipse会突然消耗更多内存.如果我JRE 7
直接将Eclipse启动到我的工作区,它会根据任务管理器分配600 MB的RAM.当我使用时JRE 8
,此值为750 MB.
更糟糕的是,如果我运行一个大型Java程序,通常会分配大约10 GB的RAM JRE 7
,切换到JRE 8
它会分配12 GB的RAM.
有人知道是什么原因导致额外的RAM分配吗?我已经测试了调整不同的选项,但没有成功:
-XX:ReservedCodeCacheSize=
-XX:MaxMetaspaceSize=
-XX:MetaspaceSize=
...
Run Code Online (Sandbox Code Playgroud)
Pet*_*iuk 11
在提出问题的方式
为什么Java 8在我的机器上分配太多内存
我认为任何人都无法回答,但有几条指南可能有所帮助.鉴于您通过任务管理器测量内存,您对使用的RSS总量感兴趣.所以
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
两个jdks命令获取它们.在输出之上使用文本排序,您将能够使用任何比较工具获得一个不错的差异.更改默认GC收集器和线程堆栈大小之类的事情将影响最终的RSS.heap + metasize + code cache + native + (thread_stack_size * maximum_number_of_threads)
jmap
工具找到.不需要玩旗帜,你可以得到数字,只要比较增加与否.jcmd
它在oracle文档中有大量文档.非技术性的 - 虽然调整各种选项以减少记忆可能有所帮助,但获得正确值的机会接近于在大海捞针中找到针.我真的建议了解如何在java中使用RSS.这些知识将在未来几年内得到应用!
如果您想要更具体的参考资料或更好的解释,请随时告诉我.而且...祝你好运!-)
归档时间: |
|
查看次数: |
2637 次 |
最近记录: |