Common lisp 如何在Common Lisp中回收无法访问的对象以备将来使用?

Common lisp 如何在Common Lisp中回收无法访问的对象以备将来使用?,common-lisp,recycle,Common Lisp,Recycle,我正在使用gsll和antik进行一些科学计算,我发现antik不重用无法访问的对象,并且总是分配新对象,这使得我的程序运行缓慢 例如,在gsll中有一个名为lu invert的函数,它计算给定矩阵的求逆,并且可以指定一个可选的目标对象。如果指定目标对象,lu invert将结果存储到该对象中。否则,lu invert将分配一个新对象来存储结果 我比较了两种情况的时间消耗,前者比后者快得多。但是,总是为这些函数指定目标对象是非常不方便的 我想知道是否有一种方法可以自动回收和重用无法访问的对象,而

我正在使用
gsll
antik
进行一些科学计算,我发现
antik
不重用无法访问的对象,并且总是分配新对象,这使得我的程序运行缓慢

例如,在
gsll
中有一个名为
lu invert
的函数,它计算给定矩阵的求逆,并且可以指定一个可选的目标对象。如果指定目标对象,
lu invert
将结果存储到该对象中。否则,
lu invert
将分配一个新对象来存储结果

我比较了两种情况的时间消耗,前者比后者快得多。但是,总是为这些函数指定目标对象是非常不方便的


我想知道是否有一种方法可以自动回收和重用无法访问的对象,而不是总是分配新对象。

一种重用废弃对象而不是让垃圾收集器处理它们的技术是。中提供了一个常见的Lisp版本的参考资料。

我会小心使用参考资料。在我(遥远的过去)的经验中(不是使用GSLL),它需要巨大的内存分配才能比丢弃和垃圾收集一直都要快。看起来资源应该总是一个优势,但是有一些开销,现代gc非常有效。