0
点赞
收藏
分享

微信扫一扫

JVM垃圾回收器概述

大柚子top 2022-05-04 阅读 39

在传统的C/C++开发中,程序员需要亲手对内存中的空间开辟和进行释放,当内存忘记回收就会爆栈,就算记得回收,但是指向给内存的指针没有释放,程序也会崩溃或者异常,其他问题更是数不胜数,堪称究极折磨了

以企业的角度看,C/C++程序员需要大量时间培养也很难写出安全的代码,企业更希望降低成本,希望来的程序员能立马上手干活,所以开始大量使用Java,降低企业的开发成本

以程序员的角度来说Java能让程序员避免和一些“未知敌人”搏斗(比如说Java直接屏蔽了指针,程序员很难写出不安全的代码),从而更好的释放生产力写业务逻辑

Java的一个特性就是有GC(Garbage Collector),Java这种语言的优势和劣势核心都体现在Garbage Collector中

在GC中,jvm负责内存的自动管理和回收,但是每隔一段时间就要扫描一遍内存表看看哪块内存需要回收,替程序员去做了这些问题,但是牺牲了性能,由于这一个特性,高响应和高性能需求的场景还是C/C++主导

比如说游戏客户端,想想在垃圾回收的时候画面需要卡顿一下,是挺难让人接受的

比如自动驾驶,汽车快撞墙了,这时候GC卡顿一下,可不完犊子了

但是事无定论,《我的世界》就是Java开发的,虽然后面出了用C++重构的“基岩版”,但是后者在性能方面优化强于前者,能在更差的设备上运行

从服务器角度来说,现在者两种语言都差不多了,因为随着设备性能的提高,拿对性能要求比较高的网络游戏服务器来说,花费在网络传输的延迟远大于逻辑处理的时间,性能瓶颈在网络上而不在那点处理时间上面

JVM垃圾回收器的历史

举报

相关推荐

0 条评论