问题描述
考虑使用 BenchmarkTools
的以下 REPL 行:
julia> N = 10^2; M = collect(reshape(1:N^2,N,N)); e = collect(1:N); # N=100
julia> @btime M[:,1] .= e; @btime M[:,1] = e;
1.211 μs (6 allocations: 128 bytes)
364.623 ns (1 allocation: 16 bytes)
julia> N = 10^3; M = collect(reshape(1:N^2,N)); e = collect(1:N); # N=1000
julia> @btime M[:,1] = e;
1.511 μs (6 allocations: 128 bytes)
1.634 μs (1 allocation: 16 bytes)
julia> N = 10^4; M = collect(reshape(1:N^2,N)); e = collect(1:N); # N=10000
julia> @btime M[:,1] = e;
3.514 μs (6 allocations: 128 bytes)
13.230 μs (1 allocation: 16 bytes)
似乎 .=
比 =
更有效,但仅适用于大 N。我仍然不太了解幕后发生的事情,也没有在 Julia 文档中找到解释。我什么时候应该使用其中一种?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)