小编Øyv*_*rud的帖子

Julia 中的向量列表比 R 慢?

我试图通过将 R 函数移植到 Julia 来加速它,但令我惊讶的是 Julia 速度较慢。该函数按顺序更新向量列表(Julia 中的数组数组)。事先要更新的列表元素的索引是未知的,新向量的长度是未知的。我编写了一个测试函数来演示该行为。

朱莉娅

function MyTest(n)
  a = [[0.0] for i in 1:n]
    for i in 1:n
      a[i] = cumsum(ones(i))
    end  
  a
end
Run Code Online (Sandbox Code Playgroud)

电阻

MyTest <- function(n){
  a <- as.list(rep(0, n))
  for (i in 1:n) 
    a[[i]] <- cumsum(rep(1, i))
  a
}
Run Code Online (Sandbox Code Playgroud)

通过将 n 设置为 5000、10000 和 20000,典型的计算时间为(21 次测试的中位数):

  • R:0.14、0.45 和 1.28 秒
  • 朱莉娅:0.31、3.38 和 27.03 秒

我使用了带有 64 位 Julia-1.3.1 和 64 位 R-3.6.1 的 Windows 笔记本电脑。

这两个函数都使用 64 位浮点类型。我真正的问题涉及整数,然后 R 更有利。但是整数比较是不公平的,因为 R 使用 32 …

performance r julia

6
推荐指数
1
解决办法
246
查看次数

标签 统计

julia ×1

performance ×1

r ×1