我需要从标准正态分布中提取 53000000 个观察值。我当前的代码在 Julia 中运行需要很长时间(事实上,它已经运行了过去二十分钟),我想知道是否可以采取任何措施来加快速度。这是我尝试过的:
using Distributions
d = Normal()
shock = rand(d, 1, 53000000)
当我在 REPL 中执行代码时(我在 Juno/Atom 中工作),代码可以立即工作,但当我使用调试器单步执行时,代码会在此时滞后(从标准法线绘制)。所以我认为调试器可能是这里真正的罪魁祸首。
最佳答案
可能是变量 shock
的分配所使用的 1/2 GB 内存有时会在加载调试器时导致交换。
尝试在调试器中运行此命令以查看:
using Distributions, Base.Sys
println("Free memory is $(Int(Sys.free_memory()))")
d = Normal()
shock = rand(d, 1, 53000000)
println("shock uses $(sizeof(shock)) bytes.")
println("Free memory is $(Int(Sys.free_memory()))")
您在演出中是否接近内存不足?
关于performance - Julia 从标准正态分布中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59832175/