最近,我对Julia语言产生了兴趣,因为它声称是一种具有接近C性能的动态语言。然而,到目前为止,我的使用经验并不好(至少在性能方面)。
我正在编写的应用程序需要随机访问特定数组索引,然后将它们的值与其他特定数组索引进行比较(在许多迭代中)。以下代码模拟了我从程序中需要的内容:
我的Julia代码执行时间约为8秒,而在Chrome环境下,JavaScript代码仅需不到1秒!
我在Julia代码中做错了什么吗?非常感谢您的帮助。
以下是Julia代码:
JavaScript代码:(比上面的Julia代码快8倍以上!)
以下是Julia代码:
n=5000;
x=rand(n)
y=rand(n)
mn=ones(n)*1000;
tic();
for i in 1:n;
for j in 1:n;
c=abs(x[j]-y[i]);
if(c<mn[i])
mn[i]=c;
end
end
end
toc();
JavaScript代码:(比上面的Julia代码快8倍以上!)
n=5000; x=[]; y=[]; mn=[];
for(var i=0; i<n; i++){x.push(Math.random(1))}
for(var i=0; i<n; i++){y.push(Math.random(1))}
for(var i=0; i<n; i++){mn.push(1000)}
console.time('test');
for(var i=0; i<n; i++){
for(var j=0; j<n; j++){
c=Math.abs(x[j]-y[i]);
if(c<mn[i]){
mn[i]=c;
}
}
}
console.timeEnd('test');