gpt4 book ai didi

Clojure数组的性能问题

转载 作者:行者123 更新时间:2023-12-04 03:09:03 26 4
gpt4 key购买 nike

这段代码非常慢。从我的上网本上的粘液替换中执行代码需要花费几分钟。

(def test-array (make-array Integer/TYPE 400 400 3))

(doseq [x (range 400), y (range 400), z (range 3)]
(aset test-array x y z 0))

相反,此代码的运行速度非常快:
(def max-one (apply max (map (fn [w] (apply max (map #(first %) w))) test-array)))
(def max-two (apply max (map (fn [w] (apply max (map #(second %) w))) test-array)))
(def max-three (apply max (map (fn [w] (apply max (map #(last %) w))) test-array)))

这与分块序列有关吗?我的第一个示例是否写错了?

最佳答案

您遇到了Java反射。这篇博客文章有一个解决方法:

http://clj-me.cgrand.net/2009/10/15/multidim-arrays/

关于Clojure数组的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3034136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com