我对循环感到困惑。例如在python3:
中import pygame
pygame.init()
....
....
while True:
....
....
pygame.display.update()
当我使用它时,程序使用,约为%110 CPU。但是当我使用像tkinter这样的GUI工具包时:
import tkinter
root = tkinter.Tk()
....
....
....
root.mainloop()
使用约%0.3 CPU。我认为两者都是无限循环。如何优化第一个代码?
答案 0 :(得分:1)
主要区别在于,您的典型GUI工具包将阻塞等待新事件的到来,并且循环体(包括绘制操作)仅在响应此类事件时执行。
然而,典型的游戏循环不会等待事件到达,因为正在进行模拟,需要不断更新,然后更新显示。
即。 pygame循环旨在尽可能多地占用CPU周期,以提供最平滑的模拟。然而,tkinter循环被设计为花费尽可能多的CPU周期来节省系统资源。