본문 바로가기
파이썬

파이썬 Pythons timeit으로 성능 테스트를 위해 코드 세그먼트의 시간을 어떻게 측정 할 수 있습니까?

by º기록 2020. 11. 30.
반응형


내 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 파일에 쓰는 데 걸리는 시간입니다. 목적은 다른 인덱스와 튜닝 메커니즘을 사용하여 데이터베이스에 대한 업데이트 문을 테스트하는 것입니다.

 

해결 방법

 


import time

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

total = t1-t0


time.time () (Windows 및 Linux) 및 time.clock () (Linux)은 빠른 함수에 대해 충분히 정확하지 않습니다 (총계 = 0). 이 경우 또는 몇 번의 실행으로 경과 된 시간을 평균화하려면 함수를 여러 번 수동으로 호출해야합니다 (예제 코드에서 이미 수행했다고 생각하므로 숫자 인수)

import time

def myfast():
   code

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

total_n = t1-t0

Windows에서 Corey가 주석에서 언급했듯이 time.clock () 은 훨씬 더 높은 정밀도 (초 대신 마이크로 초)를 가지며 time.time () 보다 선호됩니다.

 

참조 페이지 https://stackoverflow.com/questions/2866380

 

 

반응형

댓글