如何评估程序的性能
如何评估程序的性能
虽然 Mathematica 的速度并不算快,但是可以通过评估性能来写更快的程序。
内置 Timing 系列
内置 系列
Timing
◼
Timing
◼
AbsoluteTiming
◼
RepeatedTiming
基准测试
基准测试
运行
?*`Benchmark*
用法参见上述函数库文档。
基准测试一般用来测试算法的时间复杂度或者对比不同算法
举个例子:
In[]:=
bubbleSort[data_]:=data//.{a___,b_,c_,d___}/;b>c:>{a,c,b,d}
In[]:=
GeneralUtilities`BenchmarkPlot[{bubbleSort,Sort},ResourceFunction["FourierShift"]@*Range,PowerRange[1,10^7,2],"IncludeFits"True]
Out[]=
Profiling
Profiling
与基准测试不同,Profiling通常用来分析某组代码中各部分的性能开销,以定位开销大的部分并做出改进。