相关疑难解决方法(0)

朱莉娅比Java慢得多

我是朱莉娅的新手,我写了一个计算RMSE(均方根误差)的简单函数.ratings是一个评级矩阵,每一行都是[user, film, rating].有1500万个评级.该rmse()方法需要12.0秒,但Java实现速度快约188倍:0.064秒.为什么Julia实施会变慢?在Java中,我正在使用一个Rating对象数组,如果它是一个多维int数组,它会更快.

ratings = readdlm("ratings.dat", Int32)

function predict(user, film)
    return 3.462
end

function rmse()
    total = 0.0
    for i in 1:size(ratings, 1)
        r = ratings[i,:]
        diff = predict(r[1], r[2]) - r[3]
        total += diff * diff
    end
    return sqrt(total / size(ratings)[1])
end
Run Code Online (Sandbox Code Playgroud)

编辑:避免全局变量后,它在1.99秒内完成(比Java慢31倍).删除后r = ratings[i,:],它是0.856秒(慢13倍).

performance julia

8
推荐指数
3
解决办法
4553
查看次数

标签 统计

julia ×1

performance ×1