一个简单的基准测试工具
neurtu的Python项目详细描述
简单的性能测量工具
neurtu是一个python包,为多指标基准测试提供了一个通用接口 (包括时间和记忆测量)。它可以用来估计时间 大熊猫集成算法的空间复杂度 允许对结果进行快速分析和可视化。
neurtu在巴斯克语中是“测量/评估”的意思。
有关详细信息,请参见documentation。
快速启动
为了说明neurtu的用法,will将在numpy中对数组排序进行基准测试。首先,我们会 壳体生成器,
importnumpyasnpimportneurtudefcases()rng=np.random.RandomState(42)forNin[1000,10000,100000]:X=rng.rand(N)tags={'N':N}yieldneurtu.delayed(X,tags=tags).sort()
这将产生一系列延迟的计算,每个计算都标记有定义单个运行的参数。
我们可以使用,
>>>df=neurtu.timeit(cases())>>>print(df)wall_timeN10000.000014100000.0001341000000.001474
它将在内部使用timeit模块,该模块具有足够数量的求值来处理计时器精度 限制(类似于ipython的%timeit)。它还将显示长时间运行基准的进度条, 并以pandas.DataFrame形式返回结果(如果安装了pandas)。
默认情况下,所有计算都使用repeat=1运行。如果需要更多的统计置信度,则此值可以 增加,
>>>neurtu.timeit(cases(),repeat=3)wall_timemeanmaxstdN10000.0000120.0000140.000002100000.0001160.0001490.0000291000000.0013230.0017140.000339
在这种情况下,我们将得到一个框架 pandas.MultiIndex用于 列,其中第一个级别表示度量名称(wall_time),第二个级别表示聚合方法。 默认情况下,neurtu.timeit使用aggregate=['mean', 'max', 'std']方法调用,如支持的那样 通过pandas aggregation API。要禁用, 聚合并获取单个运行的计时,使用aggregate=False。 有关详细信息,请参见neurtu.timeit documentation。
要评估峰值内存使用情况,可以使用具有相同api的neurtu.memit函数,
>>>neurtu.memit(cases(),repeat=3)peak_memorymeanmaxstdN100000.00.00.01000000.00.00.010000000.00.00.0
一般来说,neurtu.Benchmark支持大量的评估指标,
>>>bench=neurtu.Benchmark(wall_time=True,cpu_time=True,peak_memory=True)>>>bench(cases())cpu_timepeak_memorywall_timeN100000.0001000.00.0001421000000.0011490.00.00168010000000.0136770.00.018347
有关更多信息,请参见documentation和 examples。
许可证
Neurtu是根据3条BSD许可证发布的。