当前位置:  开发笔记 > 编程语言 > 正文

什么时候不使用垃圾收集?

如何解决《什么时候不使用垃圾收集?》经验,为你挑选了1个好方法。

不使用垃圾收集的明显情况是实时性很强,内存严重受限,并且想要用指针进行操作.有没有其他的,较少讨论的,很好的理由为什么有人更喜欢手动内存管理而不是GC?



1> Antti Huima..:

如果你有完全增量的垃圾收集器,每个字节的分配内存有限的执行时间,那么就可以实时使用垃圾收集,所以,疯狂的,不一定是不使用垃圾收集的理由:)

但是,垃圾收集的一个基本问题是难以估计和管理内存中工作集的实际大小,因为垃圾收集器只能延迟释放内存.所以,是的,当内存受到限制时,垃圾收集可能不是一个好的选择.

垃圾收集的另一个问题是它有时会干扰释放其他资源,例如文件描述符,窗口句柄等,因为垃圾收集器可能只会延迟释放这些资源,从而导致资源不足.

垃圾收集还可能导致缓存垃圾,因为内存不一定以本地方式分配.例如,堆栈分配的内存比堆分配的短期对象更加缓存友好.

最后,垃圾收集当然会消耗CPU时间:)所以如果你可以手动编写内存管理代码,你可以节省垃圾收集器消耗的CPU周期:)


垃圾收集器的开销是否与"额外"内存量相关?通过添加更多内存,您需要更少地回收垃圾,从而提高流程效率.旧的结果是,如果您消耗16X内存GC比手动内存管理更有效.
推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有