2

我正在使用gsllwithantik进行一些科学计算,我发现它antik不会重用无法访问的对象并且总是分配新的对象,这使我的程序变慢了。

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

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

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

4

1 回答 1

6

一种重用丢弃对象而不是让垃圾收集器处理它们的技术是Resources在Peter Norvig 的 auxfns.lisp中提供了 Common Lisp 版本的资源。

于 2013-09-17T04:22:52.023 回答