垃圾收集算法

自动内存管理技术

讲师:Dmitry Soshnikov

口袋资源独家Udemy付费课程独家中英文字幕配套资料齐全!

不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。

你将会学到的

  • 计算机程序中自动内存管理背后的算法和数据结构。
  • 内存管理历史:静态、堆栈、堆分配
  • 虚拟内存和内存布局
  • 追踪与直接收集者
  • 语义与句法垃圾
  • Mark-Sweep 垃圾收集器
  • Mark-Compact收集器
  • 引用计数收集器
  • 复制收集器
  • 世代收藏家
  • 并行、增量、并发收集器
  • 三色抽象和标记
  • GC 障碍

要求

  • 基本数据结构和算法(树、图、链表等)
  • 计算机内存基础知识(字节、地址、指针)

说明

垃圾收集器的要点

内存泄漏悬空指针是手动内存管理的主要问题。你在链表中删除了一个父节点,忘记先删除它的所有子节点——你的内存就会泄漏。你以正确的顺序删除了一个对象链——但是突然间你的程序崩溃了,因为你忘记了这个资源的第二个所有者,它现在试图取消引用一个空指针。

为了避免这些问题,大多数现代高级编程语言都实现了自动内存管理。您手动分配对象,但不要为它们的释放而烦恼:一个特殊的程序,垃圾收集器,知道如何正确地自动释放它们,并回收以供将来重用。

垃圾收集器基础课程中,我们学习了与自动内存管理相关的所有不同技术和算法,这些技术和算法今天在实践中使用。

这堂课是给谁的?

首先,对于编译器工程师

在实现您的编程语言时,您很有可能需要实现垃圾收集器。即使是最初定位为“内存安全”的语言,例如 Rust,最终也实现了自动引用计数 (ARC)和其他收集器。

重申一下:在大多数现代高级编程语言中,垃圾收集器模块(或多个GC 模块,如 Java)在今天几乎是必需的。

如果我不是每天都实现编程语言怎么办?

如果您不是编译器工程师,那么该课程对您来说仍然很有趣。一般来说,实现垃圾收集器或内存管理器是一项相当高级的工程任务。这是一个简单的技巧:您进行一些复杂的项目(例如垃圾收集器、编译器、解释器等),并在构建它时学习所有不同的数据结构和算法。然后回到“日常编程”,通过复杂系统的可转移通用知识,作为一名更好的工程师得到改进。

这个项目需要 C 或 C++ 吗?

并不真地!当然,C 和 C++ 可能是原始内存操作的最佳语言并且非常适合这里,但是在课程中我们研究通用设计算法并且主要关注垃圾收集器和内存分配器的理论方面。这意味着您可以用任何您想要的语言来实现它们。例如,您可以在 JavaScript 中为虚拟堆分配一个“ArrayBuffer” ,或者类似地在 Python、Rust 等中分配一个“bytearray”。

课程中的大部分算法都是用通用伪代码描述的,因此您可以将它们移植到任何语言。

这堂课有什么特点?

这些讲座的主要内容是:

  • 简洁明了。每节课都是自给自足的、简洁的,并描述了与主题直接相关的信息,而不是分散在不相关的材料或谈话上。
  • 动画演示实时编辑笔记相结合。这使得主题的理解更容易,并显示了对象结构是如何(以及何时)连接的。静态幻灯片根本不适用于复杂的内容。

阅读材料

作为本课程的进一步阅读和其他文献,推荐以下书籍:

  • 垃圾收集手册:自动内存管理的艺术Antony Hosking、Eliot Moss 和 Richard Jones
  • 编译器设计手册:优化和机器代码生成YN Srikant,Priti Shankar

此课程面向哪些人:

  • 编译器工程师
  • 所有好奇的工程师,愿意实施一个复杂的项目来学习不同的内存管理算法(通用知识可以转移到其他系统)

发表回复

后才能评论

  • 每一个课程页面,都有演示地址选项,点击链接可以跳转到课程发布网站查看详细课程列表。
  • 绝大部分课程都有试看内容,可以先点击试看,再决定是否购买。
  • 本站课程均存储在阿里云盘或百度网盘中,由于阿里云盘对分享的文件类型有限制,所以课程资料和字幕会存储到蓝奏云盘中。
  • 阿里云盘和蓝奏云盘都是不限速下载的,你既可以选择在阿里云盘中在线学习,也可以选择下载到本地学习。
  • 课程下载到本地可以挂载中英文双字幕,请点击查看Potplayer挂载中英文双字幕教程
  • 本站所有课程,均提供mp4格式视频文件,中英文双字幕,配套资料齐全,不加密。
  • 每一个课程右侧下载面板中,都会有清晰度标识,大部分都是1080P或者720P,还有少数是超高清的。
  • 本站课程购买之后,均可以免费更新,所有课程,皆配有中文字幕。
  • 请注意,课程的中文字幕是根据英文字幕用谷歌翻译生成的,本非人工翻译。谷歌翻译准确度尚可,学习观看,没有问题。
  • 由于数字资源具有可复制性,一旦购买,不接受退款要求,请在购买之前,认真了解课程内容,确定是否需要。
  • 当然,如果有特殊情况,可以查看网站底部联系方式,联系站长说明问题,我会为你妥善处理。
  • 赞助本站VIP会员,可以免费下载所有课程,详情请查看VIP介绍