[英]In terms of performance, is it faster to move a rect or make a new rect in Pygame?
class 中的哪个代码运行得更快?
def update():
self.rect=pygame.Rect(self.x,self.y,50,50)
要么
def update():
self.rect.x=self.x
self.rect.y=self.y
简短的回答是,移动矩形更快。
长答案是,这取决于。 与许多性能问题一样,真的很难知道在 CPU 周期或 memory 占用空间方面会快多少。
在大多数情况下,移动矩形更快,因为当您引用self.rect.x
和self.rect.y
时,您实际上是在引用指向存储这些值的 memory 的指针。 更改 memory 中的这些值可能非常便宜且快速。 此外,当您创建new Rect
时,您必须将 memory 的新块分配给该 object,这可能需要时间。
另一方面,Pygame 可能会重新呈现矩形在屏幕上的新位置,这可能比仅创建一个新的 object 更便宜。如果您希望旧矩形消失,您可能需要编辑 object 的一部分使它现在不可见。
总的来说,快速或便宜的东西可能取决于上下文、语言、操作系统、硬件或运行代码环境中的许多不同因素。 请记住这一点。 另一个混淆因素是 Python 是一种编译语言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.