为啥托管语言的GC不在方法结束时立即销毁该方法内new的临时对象(程序员可确定该对象不会被引用)( 二 )
■网友
你可以把gc比做美食城收拾餐台的保洁员,保证每个人离开桌子后餐盘立即被收走,需要增加保洁人员及巡查频率,这样无意要增加很多开销。同时当你起身去拿一张餐巾纸的时间,回头发现你没吃完的饭就不见了,估计要骂街了吧。
■网友
1.如你所设想,针对这种情况HotSpot就是这样做的,这种优化叫做“逃逸分析”。逃逸分析根本就没有在堆上分配内存,而是直接在栈上展开。浅谈HotSpot逃逸分析。2.如果错误的手动delete了一个还被其他对象引用的对象,你知道后果多严重吗。反之,即使回收不及时又有什么重要的呢。
■网友
首先不管手动还是自动gc回收都得分析一下。那么gc在某个时间进行一次分析和不停的分析,你觉得哪种更好?
■网友
那你是不要时间要空间咯?难道你想两者兼得?
推荐阅读
- “空壳村”土地撂荒何解?山西石楼加码农地托管促农业提档升级
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- OC为何跌出语言榜前十
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
