less than 1 minute read

성능 테스트

def while1():
    x = 0
    while 1:
        x += 1
        if x == 10:
            break

def whileTrue():
    x = 0
    while True:
        x += 1
        if x == 10:
            break

결과

Python 2

>>> import timeit
>>> min(timeit.repeat(while1))
0.49712109565734863
>>> min(timeit.repeat(whileTrue))
0.756627082824707

Python 3

>>> import timeit
>>> min(timeit.repeat(while1))
0.6462970309949014
>>> min(timeit.repeat(whileTrue))
0.6450748789939098

그 이유는 ?

Python2

>>> import keyword
>>> 'True' in keyword.kwlist
False

Python3

>>> import keyword
>>> 'True' in keyword.kwlist
True
>>> True = 'true?'
  File "<stdin>", line 1
SyntaxError: can't assign to keyword

파이썬 2 에서 True 키워드가 정의되어 있지 않지만, 파이썬 3에서는 정의 되어있어 인터프리터가 빠르게 읽어올수있다.

결론

Python 2 사용시 긴 반복문을 실행한다면 while 1

Python 3 에서는 둘 다 사용해도됨.

출처 : https://stackoverflow.com/questions/3815359/while-1-vs-whiletrue-why-is-there-a-difference-in-python-2-bytecode

Categories:

Updated: