如何衡量Julia中的RAM消耗和计算时间?

时间:2018-04-14 00:04:32

标签: julia ubuntu-16.04 ram memory-consumption

我正在开发不同的离散化方案,为了找出最有效的方法,我想确定最大的RAM消耗和执行指定任务所需的时间,例如求解方程组,覆盖矩阵或将数据写入文件。

是否有任何类型的代码或某些东西可以满足我的需要? 顺便说一句,我在Ubuntu中使用Julia,但我也可以在Windows中使用它。

非常感谢

2 个答案:

答案 0 :(得分:0)

我喜欢使用内置的@time来做这种事情。见"Measure performance with @time and pay attention to memory allocation"。例如:

julia> @time myAwesomeFunction(tmp);
  1.293542 seconds (22.08 M allocations: 893.866 MiB, 6.62% gc time)

这将打印出时间,内存分配数量,内存分配大小以及垃圾回收所花费的时间百分比(“gc”)。 始终至少运行两次 - 第一次运行将由编译时间控制!

另请考虑BenchmarkTools.jl。这将运行代码多次,使用一些很酷的变量插值技巧,并为您提供更好的运行时/内存估计:

julia> using BenchmarkTools, Compat

julia> @btime myAwesomeFunction($tmp);
  1.311 s (22080097 allocations: 893.87 MiB)

(我最喜欢的与表现相关的事情是@code_*Zend\Form\Element\MultiCheckbox系列功能。)

答案 1 :(得分:0)

我认为BenchmarkTools.jl衡量的是总内存使用量,而不是峰值。我还没有找到可以用来衡量这一点的纯Julia代码,但也许this thread是相关的。