朱莉娅的执行速度

NSL*_*NSL 3 julia

我正在对朱莉娅的执行速度进行基准测试.我@time [i^2 for i in 1:1000]在朱莉娅提示下执行了,这导致了大约20毫秒的事情.这看起来很奇怪,因为我的计算机是现代的i7处理器(我使用的是Linux Ubuntu).

另一个奇怪的事情是,当我在一段1:10执行时间内执行相同的命令时是15毫秒.

我必须在这里找到一些微不足道的小事吗?

Ste*_*ski 9

有几点,请参阅性能提示:

  1. 不要在全球范围内进行基准测试
  2. 不要测量这样的第一次执行.
  3. 使用BenchmarkTools.

Julia是一种JIT编译的语言,所以第一次测量时,你就是在测量编译时间.这是一个很小的固定开销,所以对于任何花费大量时间的东西,它都可以忽略不计,但对于像这样的短代码,它几乎一直都是.非常量全局变量迫使编译器几乎不假设类型,这往往会毒害您的所有性能.这在某些情况下很好,但大多数时候,你a)应该编写代码,使输入是函数的显式参数,而不是来自某些全局变量的隐式参数,b)不应该编写使用可变全局的代码州.

  • 好的,我现在就明白了.看来,当我在命令提示符下运行它时,它每次都会编译.因此,我在*.il文件中的函数中定义了此代码并调用了该函数.实际上,从第二次起,它在1:100000列表上花费的时间不到1毫秒.谢谢! (2认同)