Clojure数组应该和Java数组一样快吗

Clojure数组应该和Java数组一样快吗,java,arrays,clojure,Java,Arrays,Clojure,我猜它们是一样的,但是Clojure使用Array类进行操作 无论如何,我被告知,在Clojure中,如果你真的需要速度,那么你可以使用数组,但是在以下程序之间,Java版本要快得多 (time (let [data (int-array 100000000)] (dotimes [q 100000000] (aset-int data q q)))) _ 不要使用aset-*函数。只需使用aset:(aset数据q)。不要问我为什么有aset-*函数。只要我记得,他们的使用

我猜它们是一样的,但是Clojure使用Array类进行操作

无论如何,我被告知,在Clojure中,如果你真的需要速度,那么你可以使用数组,但是在以下程序之间,Java版本要快得多

(time
 (let [data (int-array 100000000)]
   (dotimes [q 100000000]
     (aset-int data q q))))
_


不要使用
aset-*
函数。只需使用
aset
(aset数据q)
。不要问我为什么有
aset-*
函数。只要我记得,他们的使用是不被鼓励的。

你介意公布你的结果吗?+1因为与
aset
相同的基准测试运行速度快了大约十倍。没有与Java版本进行比较。
public class Array{
    public static void main(String[] args){
    long start = System.currentTimeMillis();
    int[] data = new int[100000000];
    for(int q = 0;q < data.length;q++){
        data[q] = q;
    }
    System.out.println(System.currentTimeMillis() - start);
    }
}
(time
 (let [data (IntBuffer/allocate 100000000)]
   (dotimes [q 100000000]
     (.put data q q))))