JVM内存分配

最近创建带有weex框架的项目时 后台单独起一个线程来创建node_modules 经常报内存溢出,却不知道每个参数代表什么意思,专门查了下资料:

堆是java代码可及的内存,开发人员写的东西都是堆分配的内存(底层实现除外)。而非堆内存则是JVM自己用的,比如JVM内部处理或优化,垃圾处理,常数池等

堆的内存分配用-Xms和-Xmx

-Xms分配堆最小内存,默认为物理内存的1/64;-Xmx分配最大内存,默认为物理内存的1/4。

非堆内存分配用-XX:PermSize和-XX:MaxPermSize

-XX:PermSize分配非堆最小内存,默认为物理内存的1/64;-XX:MaxPermSize分配最大内存,默认为物理内存的1/4。

因此,合理的内存分配是程序正常稳定的运行的基础。不然内存溢出可就麻烦了。

原文地址:https://www.cnblogs.com/yaolei0422/p/7264095.html