python基准测试/基准测试框架

benchmark的Python项目详细描述


benchmark是一个python基准测试框架,类似于steve purcell的 unittest在基本结构中。很简单:

import benchmark

import math

class Benchmark_Sqrt(benchmark.Benchmark):

    each = 100 # allows for differing number of runs

    def setUp(self):
        # Only using setUp in order to subclass later
        # Can also specify tearDown, eachSetUp, and eachTearDown
        self.size = 25000

    def test_pow_operator(self):
        for i in xrange(self.size):
            z = i**.5

    def test_pow_function(self):
        for i in xrange(self.size):
            z = pow(i, .5)

    def test_sqrt_function(self):
        for i in xrange(self.size):
            z = math.sqrt(i)

class Benchmark_Sqrt2(Benchmark_Sqrt):
    # Subclass the previous benchmark to change input using
    # self.setUp()

    label = "Benchmark Sqrt on a larger range"
    # The above label comes from the class name, this oen
    # comes from the label attribute

    each = 50

    def setUp(self):
        self.size = 750000

if __name__ == '__main__':
    benchmark.main(format="markdown", numberFormat="%.4g")
    # could have written benchmark.main(each=50) if the
    # first class shouldn't have been run 100 times.

产生:

Benchmark Report
================

Benchmark Sqrt
--------------

         name | rank | runs |     mean |        sd | timesBaseline
--------------|------|------|----------|-----------|--------------
 pow operator |    1 |  100 | 0.004163 | 0.0001469 |           1.0
sqrt function |    2 |  100 | 0.004584 |  0.000379 | 1.10126499627
 pow function |    3 |  100 | 0.005496 | 0.0002709 | 1.32031909568

Benchmark Sqrt on a larger range
--------------------------------

         name | rank | runs |   mean |       sd | timesBaseline
--------------|------|------|--------|----------|--------------
 pow operator |    1 |   50 | 0.1265 | 0.004772 |           1.0
sqrt function |    2 |   50 | 0.1375 | 0.004729 |    1.08705384
 pow function |    3 |   50 | 0.1649 | 0.003935 | 1.30357975885

Each of the above 450 runs were run in random, non-consecutive order by
`benchmark` v0.1.4 (http://jspi.es/benchmark) with Python 2.7.1
Darwin-11.3.0-x86_64 on 2012-04-17 19:43:01.

示例文件夹或访问中提供了更多示例 http://jspi.es/benchmark了解更多信息。

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

推荐PyPI第三方库


热门话题
java Spinner选定值未上载到firebase数据库   java如何通过bukkit中的配置添加消息?   java在SharedReference中保存列表的泛型类型   javascript Java小程序未定义   swt在Java中构建控制台应用程序   java OAuth同意屏幕没有突然显示,没有错误?   java webview选择文件安卓不工作   java Spring boot JPA如何从同一连接添加多个数据库?   java JDBC DB2驱动程序计时器线程处于阻塞状态   java我在vscode中运行flatter时看到一个错误在phone中运行应用程序somone能否帮助我plz   Java:生成JSON:如何避免生成不完整的JSON   java Date compareTo()方法始终返回1   当使用Junit runner运行测试时,java Spring自动连线失败   java Android/Sockets如何将信息从主UI线程发送到socket线程?   java Android内存声明全局变量   java如何在JBoss中拥有多个具有相同JNDI名称的数据源?   python在Java中嵌入CPython时,为什么会挂起?   java如何提供深度模拟对象?   java“find:smallint,expected:integer”Hibernate对informix数据库的验证在短时间内失败