一个简单的基准测试工具

neurtu的Python项目详细描述


pypirdfd

travisappveyorcodecov

简单的性能测量工具

neurtu是一个python包,为多指标基准测试提供了一个通用接口 (包括时间和记忆测量)。它可以用来估计时间 大熊猫集成算法的空间复杂度 允许对结果进行快速分析和可视化。

neurtu在巴斯克语中是“测量/评估”的意思。

有关详细信息,请参见documentation

安装

Neurtu需要Python2.7或3.4+,它可以安装,

pip install neurtu

pandas >=0.20是可选(但强烈建议)依赖项。

快速启动

为了说明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

包括psutil process metrics

有关更多信息,请参见documentationexamples

许可证

Neurtu是根据3条BSD许可证发布的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java错误:无法找到或加载主类   Base85又名ASCI85 java项目   在Java oracle过程中创建Clob对象时引发AbstractMethodError   访问布尔Java时出现NullPointerException   在Java中压缩和解压缩字符串的调试程序   java了解JavaMail下未读消息的不同方法   java Vaadin 10网格样式基于内容的单个行   java使用Sparql查询识别实体的类别/分类   java如何在组件的设计阶段防止内存泄漏?   java使用共享首选项在应用程序上保存更改的语言   Spring数据jpa中具有复合PK的表的java本机查询   java复选框节点树