newLISP是否使用垃圾收集?

这个页面对我来说很困惑。

它说:

newLISP中的内存管理不依赖于垃圾收集算法。 内存未标记或引用计数。 而是在创建内存对象后立即决定是否删除新创建的内存对象。

newLISP遵循仅一个参考(ORO)规则。 在表达式评估期间,一旦newLISP达到更高的评估级别,每个未被符号引用的内存对象就会过时。 newLISP中的对象(不包括符号和上下文)通过值复制传递给其他用户定义的函数。 因此,每个newLISP对象只需要一个引用。

再往下看,我看到:

所有列表,数组和字符串通过引用传入和传出内置函数。

我无法理解这两个。

newLISP如何“不依赖垃圾收集算法”,而是通过引用传递事物?
例如,它将在循环引用的情况下做什么?

LISP甚至有可能不使用垃圾回收,也不会使性能下降? (我认为你总是可以通过价值传递事物,或者当你认为可能有必要的时候,你总是可以执行全堆扫描,但是在我看来这样会疯狂地伤害你的表现。)
如果是这样,它将如何处理循环引用? 如果不是,他们是什么意思?


也许阅读http://www.newlisp.org/ExpressionEvaluation.html有助于更好地理解http://www.newlisp.org/MemoryManagement.html文章。 关于循环引用:它们不存在于newLISP中,因此无法创建它们。 性能问题在该内存管理文件的子章节中进行了介绍,网址为:http://www.newlisp.org/benchmarks/

可能正在努力并尝试newLISP - 即尝试创建循环引用 - 将清除大部分问题。

链接地址: http://www.djcxy.com/p/27163.html

上一篇: Does newLISP use garbage collection?

下一篇: How to implement a garbage collector?