[Python] 파이썬 간단한 프로파일링 해보기 Python

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"))

덧글

댓글 입력 영역