微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在性能方面,在 Pygame 中移动 rect 或创建新 rect 是否更快?

如何解决在性能方面,在 Pygame 中移动 rect 或创建新 rect 是否更快?

类中的哪些代码会运行得更快?

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 周期或内存占用方面会快多少。

移动矩形更快在大多数情况下,因为当您引用 transaction-timeoutself.rect.x 时,您实际上是在引用指向存储这些值的内存的指针。在内存中更改这些值可能非常便宜且快速。此外,当您创建 self.rect.y 时,您必须为该对象分配一个新的内存块,这可能需要一些时间。

另一方面,Pygame 可能会在屏幕上重新渲染矩形的新位置,这可能比仅仅创建一个新对象便宜。如果您希望旧矩形消失,您可能需要编辑该对象的一部分以使其现在不可见。

总的来说,便宜可能取决于上下文、语言、操作系统、硬件或许多不同的因素在运行代码的环境中。记住这一点。另一个令人困惑的因素是 Python 是一个 compiled language

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。