更新矢量以避免过多的内存使用

时间:2015-05-29 15:06:27

标签: memory-management julia

我有一个返回向量的函数。由于我多次调用此函数,我希望它更新我提供给它的向量而不是创建一个新向量。这是为了避免使用内存,从而提高速度。

原始代码基本上如下:

function!(prob1,pi,prob0)
prob1=pi'*prob0
return prob1
end

当然,每次都会创建一个新的prob1矢量。我试图以两种不同的方式修改它:

    function!(prob1,pi,prob0)
    for i in 1:length(prob1)    
    prob1[i]=pi[:,i]'*prob0
    end
    return prob1
    end

#OR

    function!(prob1,pi,prob0)
    for i in 1:length(prob1)    
    prob1[i]=dot(pi[:,i],prob0)
    end
    return prob1
    end

但是,它们运行速度都比原始代码慢,尽管它们使用的内存较少。任何改善表演时间的建议都会很棒。

1 个答案:

答案 0 :(得分:3)

你实际上不需要定义一个函数,已经存在一个函数(虽然没有文档记录):if(s.length() > 0)应该给你你想要的东西。