微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Julia 中测量一小部分代码的内存使用情况?

如何解决如何在 Julia 中测量一小部分代码的内存使用情况?

我想知道,如何通过一小部分代码来衡量内存使用情况?假设我有 50 行代码,其中我只取了三行(随机)并找到了它们正在使用的内存。

在python中,可以使用这样的语法来衡量使用情况:

**code**

psutil.virtual_memory().total -psutil.virtual_memory().available)/1048/1048/1048 

**code**

psutil.virtual_memory().total -psutil.virtual_memory().available)/1048/1048/1048 

**code**

我尝试使用 begin - end 循环,但首先,我不确定这是否是好方法,其次,我可以知道如何使用 benchmarktools 包仅提取内存使用情况。

朱莉娅:

using BenchmarkTools

**code**

@btime begin
   ** code **
end

**code**

我如何以这种方式提取信息?

期待您的建议!

谢谢!!

解决方法

我想一种解决方法是将您要进行基准测试的代码放入一个函数并对该函数进行基准测试:

using BenchmarkTools

# code before

f() = # code to benchmark
@btime f() ;

# code after

要保存您的基准,您可能需要使用 @benchmark 而不是 @btime,例如:

julia> t = @benchmark x = [sin(3.0)]
BenchmarkTools.Trial:
  memory estimate:  96 bytes
  allocs estimate:  1
  --------------
  minimum time:     26.594 ns (0.00% GC)
  median time:      29.141 ns (0.00% GC)
  mean time:        33.709 ns (5.34% GC)
  maximum time:     1.709 μs (97.96% GC)
  --------------
  samples:          10000
  evals/sample:     992

julia> t.allocs
1

julia> t.memory
96

julia> t.times
10000-element Vector{Float64}:
   26.59375
   26.616935483870968
   26.617943548387096
   26.66532258064516
   26.691532258064516
    ⋮
 1032.6875
 1043.6219758064517
 1242.3336693548388
 1708.797379032258

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。