Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Hỏi về cách làm giảm lượng cpu tiêu thụ của một chương trình pygame và tăng hiệu năng của chương trình.
07:32 24-09-2021
440 lượt xem
1 bình luận
Tôi mới bắt đầu tìm hiểu về module pygame trong python 3. Nhưng có một vấn đề là ngay với một chương trình đơn giản:
import pygame, os
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((400, 400))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
os._exit(1)
cũng đã sử dụng tới 30% cpu tiêu thụ trong máy, khiến cho về sau, khi chương trình xử lý các thao tác di chuyển sẽ rất lag, fps đo được chỉ khoảng 8-9 cho 1 chương trình chỉ vỏn vẹn thao tác di chuyển hình khối
Theo tôi tìm hiểu trước đó thì có thể là do chương trình dành phần lớn hiệu năng chỉ để chờ lệnh "QUIT". Vậy làm cách nào để khắc phục được vấn đề này (trên hệ điều hành window10) ? Tôi xin cảm ơn!
Mình nghĩ bạn có thể sử dụng 2 cách:
- Trong vòng while trong chương trình bạn nên để thêm time.sleep(numberOfSeconds). Vì đối với game bạn không cần làm mới liên tục đâu. Ví dụ bạn có thể để 0.5s sleep. Thì độ sử dụng CPU sẽ giảm xuống.
- Bạn có thể sử dụng Task Manager -> Detail -> Giảm cái priority của python xuống.