跳转到主要内容

asv的memray基准插件

项目描述

asv_bench_memray

这是一个用于asv的外部定义的memray基准插件的概念验证。

用法

在您的asv.conf.json中,将以下内容添加到要求矩阵中

"matrix": {
    "req": {
        "numpy": ["1.21"],
        "asv_plugin_memray": [""]
    },
},

这应该足以运行以下示例

import numpy as np

class MyBenchmark:
    params = [10, int(2e4)]

    def ray_sum(self, n):
        self.data = np.random.rand(n)
        np.sum(self.data)

这将产生类似以下的结果

ASV_RUNNER_PATH="../asv_runner" asv run --bench sum
· Creating environments.......
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.9-asv_bench_memray.._asv_bench_memray-numpy1.21
·· Building 30a650cb <main> for virtualenv-py3.9-asv_bench_memray.._asv_bench_memray-numpy1.21.
·· Installing 30a650cb <main> into virtualenv-py3.9-asv_bench_memray.._asv_bench_memray-numpy1.21
· Running 1 total benchmarks (1 commits * 1 environments * 1 benchmarks)
[ 0.00%] · For project commit 30a650cb <main>:
[ 0.00%] ·· Benchmarking virtualenv-py3.9-asv_bench_memray.._asv_bench_memray-numpy1.21
[100.00%] ··· benchmarks.MyBenchmark.ray_sum                                                ok
[100.00%] ··· ======== =======
               param1         
              -------- -------
                 10     1.72k 
               20000     162k 
              ======== =======

ASV_RUNNER_PATH="../asv_runner" asv run --bench sum  8.72s user 3.04s system 99% cpu 11.877 total

开发

在开发过程中,需要传递一个相对路径

"matrix": {
    "req": {
        "asv_bench_memray": ["../asv_bench_memray"]
    },
},

可能还需要清理旧的环境,并显式指向一个asv_runner实例

rm -rf .asv && ASV_RUNNER_PATH="../asv_runner" asv run --bench sum

我个人将测试基准保存在一个实验仓库中,但任何本地测试都可以。

约定

与所有用于asv的外部定义基准插件一样,此插件具有严格的层次结构。

  • 包名以asv_bench开头
  • 基准定义在包模块下的benchmarks文件夹中
  • 每个导出的新基准类型都有export_as_benchmark = [NAMEBenchmark]属性

有关更多约定,请参阅asv_runner的文档。

许可协议

MIT。

项目详情


下载文件

下载适用于您的平台文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分发

asv_bench_memray-0.1.2.tar.gz (10.4 kB 查看哈希值)

上传时间 源代码

构建版本

asv_bench_memray-0.1.2-py3-none-any.whl (4.2 kB 查看哈希值)

上传时间 Python 3

支持者