lisp减少堆(数组vs列表)

时间:2012-12-02 20:00:54

标签: arrays list memory lisp heap

我在lisp中创建了一个程序,它增加了堆的速度。 问题应该是两件事之一,但我不是父亲哪一个让堆增长如此之快。 其中一个是一个包含15个位置的列表,每个位置是一个包含4个字段的结构(所有fiels只是小数字) 另一个是2d阵列15x15

现在,对于每个循环周期,我使用

制作每个循环周期的一个副本

表示结构列表: (mapcar#'复制结构列表)

表示15x15 2d阵列 (调整阵列   (make-array dims:displa-to array)  变暗)

任何人都知道哪一个对记忆消耗最负责任? 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

通过观察这一点,两者都会以相似的数量级增长。我怀疑你的算法对你的应用程序而言根本没有足够的空间效率。

(顺便说一句,使用alexandria:copy-array复制数组。adjust-array hack不是最有效的方法。)