Profile 모듈로 프로파일링
def testFunc():
for i in xrange(100000):
t = i * i
if __name__ == '__main__':
import cProfile
cProfile.run('testFunc()')
timeit 모듈로 프로파일링
CMD창이나 터미널에서 아래와 같이 콘솔명령으로 간단하게 표현식을 프로파일링을 해볼수 있다.
$ python -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join([str(n) for n in range(100)])'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 25.2 usec per loop
파이썬 인터프리터에서 표현식을 테스트 하는방법
>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.8187260627746582
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.7288308143615723
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.5858950614929199
콘솔커맨드로 실행시에는 반복횟수가 자동으로 설정 된다.
클래스나 함수를 테스트하려면 import로 불러와야 한다.
def test():
"""Stupid test function"""
L = []
for i in range(100):
L.append(i)
if __name__ == '__main__':
import timeit
print(timeit.timeit("test()", setup="from __main__ import test"))



덧글