[파이썬] 조건문을 사용한 성능 테스트

조건문은 프로그램의 동작에 있어 중요한 역할을 합니다. 우리는 종종 어떤 조건이 참인지 여부에 따라 다른 동작을 수행해야 할 때가 있습니다. 이러한 조건문을 활용한 성능 테스트는 프로그램의 실행 속도와 효율성을 평가하는 데 유용합니다.

성능 테스트란?

성능 테스트는 주어진 작업을 수행하는 데 걸리는 시간을 측정하고 비교하는 과정입니다. 이를 통해 우리는 다양한 알고리즘, 데이터 구조, 혹은 코드 조각들의 성능을 분석하고 개선할 수 있습니다.

조건문을 활용한 성능 테스트

아래 예제는 조건문을 사용하여 기능적으로 동일한 두 가지 접근 방식을 비교하는 간단한 성능 테스트입니다. 우리는 주어진 숫자의 홀수와 짝수를 판별하는 과정을 조건문을 사용하여 두 가지 방식으로 구현합니다.

import time

# 조건문을 사용한 성능 테스트
def is_even_if(num):
    if num % 2 == 0:
        return True
    else:
        return False

# 삼항 연산자를 사용한 성능 테스트
def is_even_cond(num):
    return True if num % 2 == 0 else False

# 테스트용 데이터
numbers = [i for i in range(1, 1000001)]

# 조건문을 사용한 테스트
start_time = time.time()
for num in numbers:
    is_even_if(num)
end_time = time.time()
elapsed_time_if = end_time - start_time

# 삼항 연산자를 사용한 테스트
start_time = time.time()
for num in numbers:
    is_even_cond(num)
end_time = time.time()
elapsed_time_cond = end_time - start_time

# 결과 출력
print(f"조건문을 사용한 성능 테스트: {elapsed_time_if}초")
print(f"삼항 연산자를 사용한 성능 테스트: {elapsed_time_cond}초")

위 코드에서는 두 가지 접근 방식인 is_even_if 함수와 is_even_cond 함수를 정의합니다. 이 함수들은 주어진 숫자가 홀수인지 짝수인지 판별하는 동일한 작업을 수행합니다.

numbers라는 테스트용 데이터에 대해 각 방식의 성능을 비교하기 위해 time 모듈을 사용하여 실행 시간을 측정합니다. 각 방식의 실행 시간은 elapsed_time_ifelapsed_time_cond 변수에 저장됩니다.

결과를 출력하기 위해 print 함수를 사용하고, 실행 시간을 초 단위로 표시합니다.

실행 결과

조건문을 사용한 성능 테스트: 0.18465113639831543초 삼항 연산자를 사용한 성능 테스트: 0.17965006828308105초

위의 예제 코드를 실행하면 조건문과 삼항 연산자를 사용한 두 가지 방식 간의 실행 시간이 출력됩니다. 이를 통해 두 방식의 성능을 비교할 수 있습니다.

성능 테스트를 통해 우리는 프로그램 작성 시 조건문을 효율적으로 활용할 수 있는 방법을 찾고, 코드의 실행 속도를 최적화할 수 있습니다.