본문 바로가기
Study/Python

[Python] 출력 성능 비교: 매번 출력 vs 결과 저장 후 한 번에 출력

by ngool 2024. 9. 10.

파이썬에서 대량의 데이터를 출력할 때, 두 가지 주요 접근 방식이 있습니다.

첫째는 반복문 안에서 매번 출력을 하는 것이고, 둘째는 데이터를 먼저 저장한 후 한 번에 출력하는 것입니다.

 

이번 포스팅에서는 이 두 가지 방법의 성능을 비교해 보겠습니다.


반복문 안에서 매번 출력하는 경우

import time

# 매번 출력하는 경우
start_time = time.time()
for i in range(50000):
    print(i)
end_time = time.time()
print(f"매번 출력하는 시간: {end_time - start_time:.4f}초")

 

2초 가량 걸렸네요!

print만 했는데도 생각보다 꽤 걸렸습니다.


결과 저장 후 한 번에 출력하는 경우

import time

# 결과 저장 후 한 번에 출력하는 경우
start_time = time.time()
results = []
for i in range(50000):
    results.append(i)
print(results)
end_time = time.time()
print(f"결과 저장 후 출력하는 시간: {end_time - start_time:.4f}초")

 

대략 0.5초가 걸렸습니다..!

반복문 안에서 출력했을 때보다 4배 더 빠른 것을 확인할 수 있습니다.


결과 분석

1. 반복문 안에서 매번 출력하는 경우

    • 이 방법은 각 반복마다 print() 함수를 호출하기 때문에 I/O(Input / Ouput)작업이 빈번하게 발생합니다.
    • 결과적으로 출력 성능이 저하됩니다. I/O 작업은 CPU 작업에 비해 상대적으로 느리기 때문에 많은 출력 작업이 쌓이면 시간이 오래 걸립니다.

2. 결과 저장 후 출력하는 경우

  • 이 방법은 먼저 모든 데이터를 메모리에 저장한 다음, 한 번의 print() 호출로 데이터를 출력합니다.
  • 이 접근 방식은 출력 작업을 단순화하여 I/O 작업을 줄이므로 전체적으로 더 빠릅니다.

이번 실험을 통해 배운 점을 한 마디로 요약하며 글을 맺겠습니다!

대량의 데이터를 출력할 때는 가능한 한 데이터 저장을 먼저 하고, 이후 한 번에 출력하는 것이 성능 면에서 더 효율적이다!