多语言展示
当前在线:1036今日阅读:26今日分享:39

如何设置JVM拥有自愈

当计算机遇到死锁的时候,无论怎么样都无法跳出的时候,也就是死机的时候,需要进行重启,而且只有重启才能解决问题,现在不需要了,JVM不仅不需要重启,而且毫不夸张地说,它能够自我治愈,刚开始运行的时候它可能会碰到些挫折,但会渐入佳境。
工具/原料
1

计算机

2

虚拟机

方法/步骤
1

首先将电脑的内存进行分配,分配两个不同的内存,利用代码实现分配的内存占总内存的60%,由于是一个方式进行分配内存,可能不断地抛出java.lang.OutOfMemoryError:Java heap space异常,永远无法正常地执行完allocateMemory方法。

2

然后分配的内存已经超出了JVM的限制,内存在这个代码块执行完成后便可以回收掉,这段代码一开始应该是可以成功执行的,只是当它再去尝试分配moreBytes的时候才会挂掉。

3

接着字节码解释器不会允许GC去回收第一个数组,因为它仍然存在着一个强引用,进行分配内存,而在第一种情况下则是能够运行的,由于底层的两个约束,上述的代码是无法成功执行的。

4

进行重启程序,查看是否触发程序,由于JVM是个内建机制,可以优化热点代码,JIT代码会监控运行的代码,如果发现了一个热点,它会将你的字节码转化成本地代码,同时会执行 一些额外的优化,譬如方法内联以及无用代码擦除。

5

然后生成一个日志文件,在这里是一个名叫hotspot_pid38139.log文件,38139是Java进程的PID。

6

最后进行提前预知某个变量后续是否会被用到,在这里对应的是变量bytes,能推断出后面不会再用到bytes变量,可以对它进行GC,才会触发垃圾回收,因此程序才能奇迹般地自愈。

推荐信息