NumPy基准 >
用空速对NumPy进行基准测试。
除非另有说明,否则Airspeed Velocity自行管理建筑和Python虚拟环境。中的某些基准测试功能
runtests.py
还告诉ASV使用编译的NumPy
runtests.py
。要运行基准测试,您不需要在当前的Python环境中安装NumPy的开发版本。
针对当前已签出的NumPy版本运行基准测试(不记录结果):
python runtests.py --bench bench_core
将基准测试结果的更改与另一个版本进行比较:
python runtests.py --bench-compare v1.6.2 bench_core
运行ASV命令(记录结果并生成HTML):
cd benchmarks
asv run --skip-existing-commits --steps 10 ALL
asv publish
asv preview
有关如何使用的更多信息,请asv
参见ASV文档。
可以通过和
正常获得命令行帮助。asv --help
asv run --help
有关如何编写基准的基础知识,请参见ASV文档。
要考虑的一些事情:
该基准套件应可与任何NumPy版本一起导入。
基准参数等不应取决于所安装的NumPy版本。
尝试保持基准测试的运行时间合理。
最好使用ASV的time_
基准时间测试方法,而不是通过time.clock
编写时间测量方法,即使在编写基准测试时需要花点时间。
通常应将准备阵列等放入setup
方法中,而不要放在time_
方法中,以避免计算准备时间和基准操作时间。
请注意,在访问内存之前,使用np.empty
或np.zeros
可能不会在物理内存中分配的大型阵列会被分配。如果需要这样做,请确保在设置功能中对其进行注释。如果您正在对算法进行基准测试,则用户不太可能在新创建的空/零数组上执行该算法。通过调用数组np.ones
或
arr.fill(value)
在创建数组之后,可以强迫页面错误在设置阶段发生,