arrays - lisp 减少堆(数组与列表)

标签 arrays list memory lisp heap-memory

我用 lisp 编写了一个程序,它增加堆的速度太快了。 问题应该是两件事之一,但我不知道是哪一件事使堆增长得如此之快。 其中一个是一个有 15 个位置的列表,每个位置是一个有 4 个字段的结构(所有字段都只是小数字) 另一个是二维数组 15x15

现在对于每个循环周期,我都使用每个循环制作一个副本

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

对于 15x15 二维数组 (调整阵列 (make-array dims :displaced-to array) 调暗)

有人知道哪个是内存消耗的主要原因吗? 预先感谢您的帮助

最佳答案

只要看看这个,两者都会以相似的数量级增长堆。我怀疑您的算法对于您的应用来说空间效率不够高。

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

关于arrays - lisp 减少堆(数组与列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673250/

相关文章:

list - 获取给定 OU 中的子 OU 描述

c - 如何使用 malloc 获取 c 中指针的内存地址,然后在该地址分配 char 数组?

c++ - jsoncpp 只写一个元素的json数组

arrays - 如何在 Swift 3 Vapor 中将 JSON 转换为字典

php - 从具有重复值的 MySQL 在 PHP 中创建关联数组

C# 将对象列表中的对象转换为类型返回左手签名必须是变量错误

java - 构造函数可以像方法一样执行操作吗?

r - 如何减少 R 列表中的值

c++ - 内存问题,新的和免费的等(C++)

c - 链接器如何生成最终的虚拟内存地址?