快速简单的python基准测试。

bench-it的Python项目详细描述


快速找到你的代码在哪里花费时间。

Build Status

benchit是一个极简主义的图书馆,它的时间是 从点A到点B。它有助于检测未优化的代码。

benchit只与python 3兼容。对于Python2支持,请使用 benchit==0.2.6(https://pypi.python.org/pypi/bench-it/0.2.6

安装

pip install bench-it

示例

from benchit import BenchIt
from time import sleep


def demo_benchmark():
    b = BenchIt()  # starts the timer

    # do stuff
    sleep(1); b()  # Add marker after this code.  Code used as marker name.

    sleep(.2);
    sleep(.3);
    sleep(.4);
    b("More stuff done")  # Add a custom named marker

    for i in range(1, 5):
      sleep(.1); b()  # Code can be marked in a loop

    b.display()  # Display output as a table


demo_benchmark()


BenchIt
+-----------------+----------------+------------+------+----------+---------+---------+
| Marker          | Method         |       Line | Hits | Avg Time | Runtime | Percent |
+-----------------+----------------+------------+------+----------+---------+---------+
| sleep(1)        | demo_benchmark |  demo.py:9 |    1 |  1.01341 | 1.01341 |   43.33 |
| More stuff Done | demo_benchmark | demo.py:14 |    1 |  0.91278 | 0.91278 |   39.03 |
| sleep(.1)       | demo_benchmark | demo.py:17 |    4 |  0.10306 | 0.41223 |   17.63 |
+-----------------+----------------+------------+------+----------+---------+---------+
Total runtime: 2.33860

如何使用

实例化类将启动计时器。板凳是单打。 在代码中的任何地方重新实例化都会引入前面的 实例化计时器。要创建新计时器,请使用 唯一的名字。

b = BenchIt()

b2 = BenchIt()  # b == b2

b3 = BenchIt("Timer A")  # b != b3

在某个代码后设置标记。

call_a_method(); b()  # Quickly add a marker after a method

method1()
method2()
b("Two methods called")  # Or create a manual marker after a chunk of code

停止并显示表以进行分析。

b.display()

方法

benchit.__init__()实例化并启动计时器。

benchit.__call__(marker_name)此时添加标记。

benchit.stop()可以选择在某一点停止计时器。

benchit.display()显示表。如果正在运行,则停止计时器。

学分

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

推荐PyPI第三方库


热门话题
java检查整数是0还是检查变量是null更好?   java Android Kotlin(初学者)使用File(),并从ACTION\u GET\u内容返回Uri   java JavaFx在“内部场景”和根场景之间切换   spring将XMLBean配置转换为java配置   java JPA HIBERNATE映射列两次(embeddedID和POJO)   c#单态模式模型在什么情况下适用?   java请求。getRemoteUser在特定时间后返回null?   spring boot中PUT api控制器的java my单元测试用例失败   java在字符串中互换地解析和替换值   java Android JNI在应用程序中检测到错误:调用JNI GetMethodID时出现挂起异常   JavaSpringDataMongo:使用非简单键持久化映射   爪哇玻璃鱼连接被拒绝   java如何在用户注册时发送特定电子邮件id的自动回复?   Java列表:实例化时和之后的赋值之间的差异