1
我是朱莉婭的新手。運行下面的代碼:爲什麼朱莉婭第一次評估很慢?
const size = 100
@time A = rand(size, size) * rand(size, size)
@time B = rand(size, size) * rand(size, size)
@time a = det(A)
@time b = det(B)
print(a, "\n", b)
然後我得到的是這樣的:
0.825584 seconds (259.77 k allocations: 13.101 MiB)
0.000248 seconds (11 allocations: 234.813 KiB)
0.297366 seconds (44.59 k allocations: 2.591 MiB)
0.012814 seconds (12 allocations: 79.375 KiB)
-9.712788203190892e49
-5.471097050756647e49
爲什麼無論矩陣乘法或行列式的評價首先調用的是極其緩慢?如何避免這種情況?
它第一次編譯函數。如果你把這一切放在更大的功能,它只會編譯一次。當運行相當長度的任何事情時,這並不重要,因爲第一個電話只是其中的一個。對於包函數,您可以預編譯它們並存儲預編譯版本。 –
X-ref:[BenchmarkTools.jl](https://github.com/JuliaCI/BenchmarkTools.jl)中的'@ btime'。 – Gnimuc