我有一个python脚本,它可以正常工作,但我需要编写执行时间.我在谷歌上搜索过我应该使用timeit,但我似乎无法让它发挥作用.

我的Python脚本如下所示:

import sys
import getopt
import timeit
import random
import os
import re
import ibm_db
import time
from string import maketrans
myfile = open("results_update.txt", "a")

for r in range(100):
    rannumber = random.randint(0, 100)

    update = "update TABLE set val = %i where MyCount >= '2010' and MyCount < '2012' and number = '250'" % rannumber
    #print rannumber

    conn = ibm_db.pconnect("dsn=myDB","usrname","secretPWD")

for r in range(5):
    print "Run %s\n" % r        
    ibm_db.execute(query_stmt)
 query_stmt = ibm_db.prepare(conn, update)

myfile.close()
ibm_db.close(conn)

我需要的是执行查询并将其写入文件results_update.txt所需的时间.目的是使用不同的索引和调优机制测试数据库的update语句.

推荐答案

你可以在你想要计时的区块前后使用time.time()time.clock().

import time

t0 = time.time()
code_block
t1 = time.time()

total = t1-t0

这种方法不像timeit那样精确(它不是平均运行几次),但它很简单.

对于快速函数,time.time()(在Windows和Linux中)和time.clock()(在Linux中)不够精确(您得到的总数=0).在这种情况下,或者如果您想要平均几次运行所用的时间,您必须手动调用该函数多次(我认为您在示例代码中已经这样做了,而Time在您设置其number参数时会自动执行)

import time

def myfast():
   code

n = 10000
t0 = time.time()
for i in range(n): myfast()
t1 = time.time()

total_n = t1-t0

在Windows中,正如科里在 comments 中所说的那样,time.clock()的精度要高得多(微秒而不是秒),而且比time.time()更受欢迎.

Python相关问答推荐

更改Seaborn条形图中的x轴日期时间限制

使文本输入中的文本与标签中的文本相同

使用GEKKO在简单DTE系统中进行一致初始化

如何让 turtle 通过点击和拖动来绘制?

如何在图片中找到这个化学测试条?OpenCV精明边缘检测不会绘制边界框

通过pandas向每个非空单元格添加子字符串

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

为什么\b在这个正则表达式中不解释为反斜杠

基于行条件计算(pandas)

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

如何找出Pandas 图中的连续空值(NaN)?

PYTHON、VLC、RTSP.屏幕截图不起作用

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

一个telegram 机器人应该发送一个测验如何做?""

ModuleNotFoundError:Python中没有名为google的模块''

如何在Python中从html页面中提取html链接?

Polars时间戳同步延迟计算

对数据帧进行分组,并按组间等概率抽样n行

正在try 让Python读取特定的CSV文件