これは、「高価なアルゴリズムに対するClojureのパフォーマンス」という質問に対する@cgrandの回答のフォローアップです。私はそれを研究し、彼のテクニックのいくつかを私自身の実験的な Clojure パフォーマンス チューニングに適用しようとしています。
私が疑問に思っていることの1つは、「醜い」「配列スワップトリック」です。
(set! curr prev)
(set! prev bak)
これにより、元のアプローチよりもパフォーマンスが向上するのはなぜですか? Clojure 配列は真の Java プリミティブ配列ではない場合があるのではないでしょうか? 必要に応じて、回答で Clojure コア ソースを引用してください。