Hah*_*ess 10 java arrays clojure
我猜它们是相同的,但Clojure使用Array类来操作.
无论如何,我被告知在Clojure中如果你真的需要速度那么你可以使用数组但是在以下程序之间Java版本要快得多
(time
(let [data (int-array 100000000)]
(dotimes [q 100000000]
(aset-int data q q))))
Run Code Online (Sandbox Code Playgroud)
_
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);
}
}
Run Code Online (Sandbox Code Playgroud)
相比之下,使用IntBuffer类的Clojure程序几乎与Java代码一样快
(time
(let [data (IntBuffer/allocate 100000000)]
(dotimes [q 100000000]
(.put data q q))))
Run Code Online (Sandbox Code Playgroud)