1

ヒープの増加が速すぎるプログラムを Lisp で作成しました。問題は2つのうちの1つであるはずですが、どちらがヒープを非常に速く成長させているかはわかりません. そのうちの 1 つは 15 の位置を持つリストで、各位置は 4 つのフィールド (すべてのフィールドは小さな数字のみ) を持つ構造体で、もう 1 つは 15x15 の 2 次元配列です。

ループサイクルごとに、次を使用してそれぞれのコピーを1つ作成しています

構造のリスト: (mapcar #'copy-structure list)

15x15 2d 配列の場合 (adjust-array (make-array dims :displaced-to array) dims)

メモリ消費の原因が最も多いのはどれか知っていますか? よろしくお願いいたします。

4

1 に答える 1

1

これを見るだけで、どちらも同程度の規模でヒープを成長させます。あなたのアルゴリズムは、あなたのアプリケーションにとってスペース効率が十分ではないのではないかと思います。

(ちなみに、alexandria:copy-array配列のコピーに使用します。adjust-arrayハックは最も効率的な方法ではありません。)

于 2012-12-02T21:23:48.493 に答える