Julia 为什么朱莉娅在第一次评估时反应很慢?

Julia 为什么朱莉娅在第一次评估时反应很慢?,julia,Julia,我是朱莉娅的新手。运行以下代码: 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.

我是朱莉娅的新手。运行以下代码:

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:
@btime
。它第一次编译函数时。如果你把这些都放在一个更大的函数中,它只会编译一次。当运行任何相当长的程序时,这并不重要,因为第一次调用只是众多调用中的一个。对于包函数,您可以预编译它们并将预编译版本存储在中。X-ref:
@btime