function1(args; kwargs)
和function2(args; kwargs)
是两个函数,给定相同的输入,返回相同的输出。我想检查function1
是否比function2
快。这两个函数都需要很长时间才能运行(10分钟)。我尝试使用@btime
,但这似乎需要很长时间。我猜它运行了这个函数几千次。我不太关心平均值有多精确,那么我如何在1或2次运行中对函数进行基准测试呢?
@btime
主要是为了解决基准测试中的两个问题:编译开销和系统上其他进程引起的随机噪声,这些噪声可能会导致函数运行速度变慢,原因与正在执行的实际机器码无关。
在你的例子中,这两种情况似乎都不特别令人担忧,仅仅是因为函数的运行时间太长了。您可以通过在对两个函数计时之前简单地运行一次来处理编译开销,并且随机的系统噪声可能会在您的函数的长运行时间内均匀分布。
如果您确实想使用BenchmarkTools,请查看手册中描述的samples
和evals
关键字到@benchmark
: https://juliaci.github.io/BenchmarkTools.jl/stable/manual/#Benchmark-Parameters