看完这篇文章,

  • 能够使用“相关术语”来描述“GC”
  • 我更喜欢“GC”(也许)

相关术语

内存泄漏 / 悬空指针 / stop-the-world GC / 增量 GC / 并发 GC

"供审查] 在看文章内容之前,先用上面的话来解释一下GC吧!

计划说明

  • 什么是云?有人问过我并解释过,但我也不太了解。
  • 我正在阅读文档,但我不明白你所说的一半......
  • 不知道今天晚饭要不要吃炒茄子呢~什么是NAS?

类似的东西还不少,所以打算每天一个一个地学习一个我知道或知道的IT术语!

这是昨天的文章↓

什么是GC

GC = 垃圾收集 = 程序分配并自动释放不再需要的内存区域

  • 开发用于简化 Lisp 中的内存管理
  • 许多高级语言的标准实现
  • GC 可通过 C/C++ 中的库获得

感谢GC,可以避免以下错误

  • 内存泄漏= 对象存在但没有指向它的指针
    • 但是,如果您编写的代码即使在发生 GC 时也保留指针,则会发生内存泄漏。
    • 导致内存不足
  • 悬空指针= 指向释放对象的指针
    • 取消引用悬空指针时的意外行为
  • double free bug = 试图再次释放之前释放的内存区域

* GC有多种实现方式,下面是最常见的追踪GC的故事

GC的时序有如下模式

  • 停止世界 GC= 如何在 GC 期间完全停止应用程序线程
    • 安全,因为没有发生新的对象分配或解除分配
    • 在堆整个 GC = 完整 GC 期间应用程序有一段时间没有响应
    • 适用于非交互式程序
  • 增量GC= 如何多次运行 GC
    • 总体比 stop-the-world GC 需要更长的时间
  • 并发 GC= 如何与应用程序线程并行运行 GC
    • 由于同时运行 GC 线程而导致吞吐量下降
    • 不要停止程序执行

[Bonus] 我研究的时候出现的这个词是什么

  • 堆内存 = 程序执行期间可以动态分配的内存区域
  • 吞吐量 = 每单位时间的吞吐量

参考资料


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308622636.html

相关文章:

  • 2022-01-10
  • 2021-09-10
  • 2021-06-09
  • 2021-05-27
  • 2021-04-08
  • 2021-06-19
  • 2021-11-30
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-04
  • 2021-05-28
  • 2021-08-17
  • 2021-08-10
  • 2021-12-03
  • 2021-08-04
相关资源
相似解决方案