파이썬에서 대량의 데이터를 출력할 때, 두 가지 주요 접근 방식이 있습니다.
첫째는 반복문 안에서 매번 출력을 하는 것이고, 둘째는 데이터를 먼저 저장한 후 한 번에 출력하는 것입니다.
이번 포스팅에서는 이 두 가지 방법의 성능을 비교해 보겠습니다.
반복문 안에서 매번 출력하는 경우
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 작업을 줄이므로 전체적으로 더 빠릅니다.
이번 실험을 통해 배운 점을 한 마디로 요약하며 글을 맺겠습니다!
대량의 데이터를 출력할 때는 가능한 한 데이터 저장을 먼저 하고, 이후 한 번에 출력하는 것이 성능 면에서 더 효율적이다!
'Study > Python' 카테고리의 다른 글
[Python] itertools 라이브러리 사용법 (조합, 순열, 데카르트 곱) (0) | 2024.11.13 |
---|---|
[Python] 비트 연산 (0) | 2024.08.31 |
[Python] 컴퓨터가 음수를 관리하는 방법 (2의 보수) (0) | 2024.08.31 |
[Python] 예외(exception)와 예외처리(exception handling) (1) | 2024.08.08 |