现在注册

登录

忘记密码

忘记密码? 请输入您的电子邮件地址. 您将收到一个链接,将创建通过电子邮件新密码.

添加后

你必须登录后添加 .

添加问题

您必须登录才能提问.

登录

现在注册

欢迎Scholarsark.com! 您的注册将授予您访问使用该平台的更多功能. 你可以问问题, 做出贡献或提供答案, 查看其他用户以及更多的个人资料. 现在注册!

垃圾收集算法

垃圾收集算法

价格: $49.99

垃圾收集器的要点

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

为了避免这些问题, 大多数现代高级编程语言都实现了 自动内存管理. 您手动分配对象, 但是不要打扰他们 解除分配: 一个特别的节目, 垃圾收集器, 知道怎么做 自动地 正确释放它们, 并回收以备将来重用.

在里面 垃圾收集器的要点 课堂上我们学习与自动内存管理相关的所有不同技术和算法, 今天在实践中使用的.

这门课是给谁看的?

首先, 对于 编译器工程师.

在实现你的编程语言时, 有一个 非常高的机会 你需要实现一个垃圾收集器. 甚至最初定位为的语言 “内存安全”, 比如锈, 最终实施 自动引用计数 (弧) 和其他收藏家.

重申: 在大多数现代高级编程语言中, 垃圾收集器模块 (要么 气相色谱模块, 就像在 Java 中一样) 今天几乎是一个要求.

如果我不是每天都在实现编程语言会怎样?

如果你是 编译器工程师, 那么这门课对你来说仍然很有趣. 一般实现垃圾收集器或内存管理器, 是个漂亮的 高级工程任务. 这是一个简单的技巧: 你需要一些复杂的项目 (比如垃圾收集器, 编译器, 口译员, 等等), 在建造它的同时, 你学 所有不同的数据结构和算法. 然后回到 “日常编程”, 改进为更好的工程师, 具有复杂系统的可转移通用知识.

这个项目我需要 C 还是 C++?

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

课程中的大部分算法都在 通用伪代码, 所以你可以将它们移植到任何语言.

这门课的具体内容?

这些讲座的主要内容是:

  • 简明扼要. 每堂课都是自给自足, 简洁的, 并描述与主题直接相关的信息, 不要分心无关的材料或谈话.

  • 动画演示 结合 实时编辑笔记. 这使理解主题更容易, 并展示如何 (和 什么时候 在时间) 对象结构是连接的. 静态幻灯片根本不适用于复杂的内容.

阅读材料

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

  • 垃圾收集手册: 自动内存管理的艺术 通过安东尼霍斯金, 艾略特·莫斯, 和理查德·琼斯

  • 编译器设计手册: 优化和机器代码生成 由 Y.N. 斯里坎特, 普丽蒂·香卡

关于 arkadmin

发表评论