我正在对朱莉娅的执行速度进行基准测试。我在Julia提示符上执行了@time [i^2 for i in 1:1000]
,这导致了大约20毫秒的某个数量级。这看起来很奇怪,因为我的计算机是现代的i7处理器(我使用的是Linux Ubuntu)。
另一个奇怪的事情是,当我在1:10
范围内执行相同的命令时,执行时间是15毫秒。
我必须在这里找到一些微不足道的东西吗?
答案 0 :(得分:8)
有几件事,请参阅performance tips:
Julia是一种JIT编译语言,所以第一次测量时,你就是在测量编译时间。这是一个很小的固定开销,所以对于任何花费大量时间的东西,它都可以忽略不计,但对于像这样的短代码,它几乎一直都是。非常量全局变量迫使编译器几乎不假设类型,这往往会毒害您的所有性能。这在某些情况下很好,但大多数情况下,你a)应该编写代码,使输入是函数的显式参数,而不是来自某些全局变量的隐式参数,b)不应该编写使用可变全局的代码状态。