- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
稍微澄清一下问题:
由于它们支持的语言的性质,垃圾收集器(例如 JVM 使用的垃圾收集器)涉及很多复杂性。与 JVM 垃圾收集器相比,专为纯函数式、急切评估的编程语言而构建的垃圾收集器可以进行哪些简化?
最佳答案
我几乎不是函数式语言设计方面的专家,但在思考你的问题时,我立即想到了以下主题:
很可能是分代GC,至少我认为没有理由不应该这样。它可能会受益于调整大量临时对象
无写入障碍 - 由于不变性,无法创建从旧对象到新对象的引用。没有旧到新的引用意味着在分代 GC 的情况下不需要记住集,因此不需要写障碍来管理它们。以我的拙见,这是一个很大的简化。
更简单的安全点 - 由于函数式语言的本质,函数调用比面向对象编程要密集得多。甚至循环也可以定义为递归函数调用。这应该会使 GC 安全点的实现变得更容易 - 例如,只需在每个函数入口上实现即可。例如,阅读 this article作为引用。
没有固定 - 如果我们假设的纯函数式语言不支持 native 代码协作,则在压缩 GC 的情况下不需要对象固定。这可以大大简化其设计。
没有终结 - 对象终结可能不适合纯函数式语言。我觉得它破坏了引用透明度。如果我们不支持原生资源,那么人们一开始就不需要它。
关于functional-programming - 对于纯粹的、函数式的、热切评估的语言,垃圾收集器可以安全地做出哪些假设?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561842/
我有两个实体,一个用户和一个角色,具有从用户到角色的一对多关系。这些表格如下所示: mysql> select * from User; +----+-------+----------+ | id
我是一名优秀的程序员,十分优秀!