
프로그램이 전체적으로 갈 수록 점점 느려졌는데 원인은 콘솔 디버그 창에 쓰여지는 글자가 많아질수록 tqdm 이 새로 고침하면서 콘솔창에 내용을 업데이트 하는 방식이라 성능이 엄청 나게 느려졌었다. 로그가 쌓일수록 10배이상? 느려지는 느낌인데 (너무한거 아닌가 이건..) 그냥 이걸 안쓰는게 나은 대안이 될 수도 있다, 또는 정 써야한다면 타이밍상 빈도를 낮춰서 보여지게 하면 이게 유일한 대안처럼 보이지만 찜찜한 느낌이 남아 있게 된다.
tqdm은 진행률을 실시간으로 업데이트하기 위해 매번 콘솔에 출력을 하는데, 이 과정에서 다음과 같은 이유로 성능 저하가 발생할 수 있습니다.
- 콘솔 출력 오버헤드:
진행률 바가 계속 업데이트되면서 많은 양의 텍스트가 콘솔(특히 디버그 콘솔)에 출력되면, 출력 버퍼를 처리하는 데 많은 시간이 소요됩니다. 디버그 콘솔은 일반 터미널보다 출력 최적화가 덜 되어 있기 때문에, 실시간 업데이트가 빈번하면 오버헤드가 누적되어 전체 실행 속도가 느려질 수 있습니다. - 화면 갱신 비용:
tqdm은 매 업데이트마다 화면을 갱신하는데, 이 과정에서 디버그 콘솔이 매번 다시 그려져야 합니다. 많은 업데이트가 빠르게 발생하면, 디스플레이 갱신에 따른 리소스 사용이 커져 프로그램 성능에 영향을 미치게 됩니다.
따라서, tqdm의 업데이트 빈도를 줄이거나, 디버그 콘솔에서는 진행률 출력을 비활성화하는 방법을 고려해 볼 수 있습니다. 예를 들어, 일정 시간 간격(예: 3초마다)으로 업데이트하거나, 디버그 환경에서는 tqdm의 출력을 최소화하는 옵션을 사용할 수 있습니다.
To give a bit of context, I have a converter that request JSON data in two steps, one step 1 where it request the complete amount of Data_points and the second where per data point the details are requested. To keep track of the progress, because I am expecting to request a lot of data from this point. That is why I use tqdm, the problem it really is slowing my program done by at least a factor of 8.
>
miniters : int or float, optional
Minimum progress display update interval, in iterations. If 0 and dynamic_miniters, will automatically adjust to equal mininterval (more CPU efficient, good for tight loops). If > 0, will skip display of specified number of iterations. Tweak this and mininterval to get very efficient loops. If your progress is erratic with both fast and slow iterations (network, skipping items, etc) you should set miniters=1
Reducing this parameter could speed things up.
ref :
https://stackoverflow.com/questions/67077559/tqdm-slows-down-my-program-at-a-factor-of-at-least-8
'프로그래밍(Programming) > Python' 카테고리의 다른 글
global 키워 (0) | 2025.03.12 |
---|---|
OpneAI API 키를 cmd, terminal 에 설정하기 (0) | 2025.03.10 |
간단한 Undo 만들기 (0) | 2025.03.10 |
설치 중 실패하는 패키지를 건너뛰고 설치 : `pip` 명령어에 `--no-deps` (0) | 2025.02.25 |
How to resolve "normal site-packages is not writable" in Python (0) | 2023.12.22 |