jvm 学习

java分存分配


-Xmx 最大堆内存。最大堆内存是指新生代和老年代的大小之和的最大值 

-Xms 最小堆内存。也就是JVM启动时,所占据的操作系统内存大小。


java程序在运行时,首先会被分配-Xms指定的内存大小。并尽可能尝试在这个空间段内运行程序。当-Xms指定的内存大小无法满足应用程序时。JAM才会向操作系统申请更多的内存,直到内存达到-Xmx珠最大内在为止。  若超出-Xmx的值。抛出OutOfMemoryError异常。


-Xmn 用于设置新生代大小。设置一个较大的新生代会减小老年代的大小。  这个参数对系统性能以及GC行为有很大的影响。新生代一般为整个堆空间的 1/4 到 1/3 左右。

-XX:NewSize 用于设置新生代的初始大小, -XX:MAXNewSize 设置新生代最大值。  只设置-Xmn的效果等同于设置了相同的 -XX:NewSize 和 -XX:MAXNewSize。

若设置不同的-XX:NewSize和-XX:MAXNewSize可能会导致内存震荡,从而产生不必要的系统开销。


-XX:MaxPermSize 可以设置持久代的最大值,-XX:PermSize 可以调协持久代的初始大小。 持久代的大小直接决定了系统可以支持多少个类定义和多少常量 。

一般来说MaxPermSize调置为64M 已经可以满足绝大部分应用程序正常工作。如果依然出现永久区溢出。可以调为128.  还不能满足,则应该考虑优化系统的设计。


-Xss 参数设置线程栈。在线程中进行局部变量分配,函数调用时,都需要在栈中开辟空间。



字节码运行的两种方式


解释运行:解释运行以解释方式运行字节码,解释执行的意思是“读一句执行一句”

编译运行(JIT):将字苊码编译成机器码,直接执行机器码,运行时编译,编译后性能有数量级的提升(保守估计差10倍以上)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值