큐에서 값을 꺼내오는 것에 대한 fps를 계산하는 간단한 Python 예제입니다.
2024. 4. 18 최초작성
실행결과입니다. 20개의 값을 큐에서 꺼내오며 fps를 측정한 결과를 보여줍니다.
큐에서 꺼낸 값 1, 경과시간 0.00 초, 지금까지 큐에서 꺼낸 개수 1개, FPS: 322638.77
큐에서 꺼낸 값 2, 경과시간 1.01 초, 지금까지 큐에서 꺼낸 개수 2개, FPS: 1.98
큐에서 꺼낸 값 3, 경과시간 2.02 초, 지금까지 큐에서 꺼낸 개수 3개, FPS: 1.49
큐에서 꺼낸 값 4, 경과시간 3.03 초, 지금까지 큐에서 꺼낸 개수 4개, FPS: 1.32
큐에서 꺼낸 값 5, 경과시간 4.04 초, 지금까지 큐에서 꺼낸 개수 5개, FPS: 1.24
큐에서 꺼낸 값 6, 경과시간 5.06 초, 지금까지 큐에서 꺼낸 개수 6개, FPS: 1.19
큐에서 꺼낸 값 7, 경과시간 6.08 초, 지금까지 큐에서 꺼낸 개수 7개, FPS: 1.15
큐에서 꺼낸 값 8, 경과시간 7.08 초, 지금까지 큐에서 꺼낸 개수 8개, FPS: 1.13
큐에서 꺼낸 값 9, 경과시간 8.10 초, 지금까지 큐에서 꺼낸 개수 9개, FPS: 1.11
큐에서 꺼낸 값 10, 경과시간 9.11 초, 지금까지 큐에서 꺼낸 개수 10개, FPS: 1.10
큐에서 꺼낸 값 11, 경과시간 10.12 초, 지금까지 큐에서 꺼낸 개수 11개, FPS: 1.09
큐에서 꺼낸 값 12, 경과시간 11.13 초, 지금까지 큐에서 꺼낸 개수 12개, FPS: 1.08
큐에서 꺼낸 값 13, 경과시간 12.14 초, 지금까지 큐에서 꺼낸 개수 13개, FPS: 1.07
큐에서 꺼낸 값 14, 경과시간 13.15 초, 지금까지 큐에서 꺼낸 개수 14개, FPS: 1.06
큐에서 꺼낸 값 15, 경과시간 14.16 초, 지금까지 큐에서 꺼낸 개수 15개, FPS: 1.06
큐에서 꺼낸 값 16, 경과시간 15.17 초, 지금까지 큐에서 꺼낸 개수 16개, FPS: 1.05
큐에서 꺼낸 값 17, 경과시간 16.18 초, 지금까지 큐에서 꺼낸 개수 17개, FPS: 1.05
큐에서 꺼낸 값 18, 경과시간 17.20 초, 지금까지 큐에서 꺼낸 개수 18개, FPS: 1.05
큐에서 꺼낸 값 19, 경과시간 18.21 초, 지금까지 큐에서 꺼낸 개수 19개, FPS: 1.04
큐에서 꺼낸 값 20, 경과시간 19.22 초, 지금까지 큐에서 꺼낸 개수 20개, FPS: 1.04
=== work 스레드 종료 ===
큐에서 꺼낸 전체 개수 20 개, 경과시간 20.24 초, FPS 0.99
사용한 전체 코드입니다.
# fps 계산하는 예제코드 import time import queue import threading # 주어진 수만큼 큐에 값을 넣습니다. def work(num): global thread_work_alive i = num while i > 0: i = i - 1 # 큐에 값을 넣습니다. # i는 감소하지만 증가되는 값을 큐에 넣도록 합니다. q.put(num-i) # 딜레이를 추가합니다. time.sleep(1) print('=== work 스레드 종료 ===') # 메인에서 work 스레드의 종료를 감지하도록 합니다. thread_work_alive = False # 큐 생성 q = queue.Queue() thread_work_alive = True # 스레드를 시작합니다. work 스레드가 20개의 숫자를 큐에 넣도록 합니다. thread_work = threading.Thread(target=work, args=(20,)) thread_work.start() # 시작 시간 start_time = time.time() # 큐에서 꺼낸 개수를 저장합니다. count = 0 # work 스레드가 살아있는 동안 반복합니다. while thread_work_alive: if not q.empty(): # 큐가 비어있을때에만 큐에서 꺼냅니다. count = count + 1 # 큐에서 꺼냅니다. d = q.get() current_time = time.time() # 현재 시간 측정 elapsed_time = current_time - start_time # 경과 시간 계산 fps = count / elapsed_time # FPS 계산 print(f"큐에서 꺼낸 값 {count}, 경과시간 {elapsed_time:.2f} 초, 지금까지 큐에서 꺼낸 개수 {count}개, FPS: {fps:.2f}") # work 스레드 종료를 대기합니다. thread_work.join() # 최종 FPS 계산 final_time = time.time() total_time = final_time - start_time final_fps = count / total_time print(f"큐에서 꺼낸 전체 개수 {count} 개, 경과시간 {total_time:.2f} 초, FPS {final_fps:.2f}") |
스레드 사용법은 아래 포스트를 참고하세요.
Python Thread 예제
https://webnautes.tistory.com/2138
'Python > Python 예제 코드' 카테고리의 다른 글
Python if문 내부에 있는 조건별로 주석 달기 (0) | 2024.05.17 |
---|---|
디렉토리 존재 여부 확인 후, 새로 디렉토리 생성하는 Python 예제 (0) | 2024.04.23 |
Python List와 문자열간 변환 (0) | 2024.04.10 |
파이썬 기초 강좌 (5) | 2024.03.16 |
텍스트에서 중복 문장 제거하는 파이썬 예제 (0) | 2024.03.07 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!