gpt4 book ai didi

memory-management - newLISP 是否使用垃圾回收?

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:16 26 4
gpt4 key购买 nike

This page一直让我很困惑。

它说:

Memory management in newLISP does not rely on a garbage collection algorithm. Memory is not marked or reference-counted. Instead, a decision whether to delete a newly created memory object is made right after the memory object is created.

newLISP follows a one reference only (ORO) rule. Every memory object not referenced by a symbol is obsolete once newLISP reaches a higher evaluation level during expression evaluation. Objects in newLISP (excluding symbols and contexts) are passed by value copy to other user-defined functions. As a result, each newLISP object only requires one reference.

再往下看,我看到:

All lists, arrays and strings are passed in and out of built-in functions by reference.

我无法理解这两个。

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

LISP 甚至 可能 不使用垃圾回收,而不会降低性能吗? (我假设你总是可以按值传递东西,或者你总是可以在你认为可能有必要时执行全堆扫描,但在我看来这会疯狂地损害你的性能。)
如果是这样,它将如何处理循环引用?如果不是,它们是什么意思?

最佳答案

或许在读书http://www.newlisp.org/ExpressionEvaluation.html有助于理解 http://www.newlisp.org/MemoryManagement.html纸更好。关于循环引用:它们在 newLISP 中不存在,无法创建。性能问题在该内存管理论文的一个子章节中解决,此处:http://www.newlisp.org/benchmarks/

可能正在使用 newLISP 进行工作和试验 - 即尝试创建循环引用 - 将解决大部分问题。

关于memory-management - newLISP 是否使用垃圾回收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com