【问题标题】:How much does an CGAffineTransformMakeRotation() cost?CGAffineTransformMakeRotation() 的成本是多少?
【发布时间】:2009-05-12 18:18:10
【问题描述】:

这是一项成本非常高的功能,会影响我的表现吗?我猜他们将那个用于主屏幕上的摆动按钮+核心动画。我只是想在开始浪费时间之前先了解一下;)

【问题讨论】:

    标签: iphone uikit


    【解决方案1】:

    这似乎不太可能是一个性能问题 - 它可以解决诸如余弦、正弦和一些乘法之类的问题。不要一秒钟调用它数千次,你会没事的。

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      与所有事物一样,这取决于您使用它的方式和数量。它一直用于游戏开发,iPhone 非常适合。 CoreAnimation 也非常快。如果您对此感到担心,我的建议是采用 Apple 提供的示例应用程序之一并通过 Instruments 运行它,以执行您自己的一些基准测试,看看它们是否可以满足您的需求。

      【讨论】:

        【解决方案4】:

        所有 CGAffineTransformMakeRotation() 所做的只是为常规的旧 CGAffineTransform 填充矩阵。如果您认为自己可以更快地填充(或预填充)矩阵,那么就去做吧(如果这还没有经过超级优化,我会感到非常惊讶)。

        然后,当需要执行应用转换的实际工作时,我很确定 GPU 会被告知要处理它,这样它就会运行得很快,而且你的主 CPU 不应该占用太多的命中。

        如果你真的很担心,那就在 OpenGL 之上的 2D 空间中进行转换,以确保它是硬件优化的。

        【讨论】:

        • 谢谢。我将如何使用 OpenGL 在 2D 空间中做到这一点?我对OpenGL一无所知。一直以为这只是 3D 的东西。
        【解决方案5】:

        我只是想在开始浪费时间之前了解一下

        优化系统而不是单行。谁知道您的代码将调用转换多少次。最好让整个系统正常工作,对其进行分析,然后优化太慢的部分。

        不要担心人们告诉您的个别呼叫速度很慢。如果您的代码很慢,请将此信息用作指针,但始终查看代码中的操作方式。

        【讨论】:

          猜你喜欢
          • 2012-05-13
          • 1970-01-01
          • 1970-01-01
          • 2010-09-20
          • 2013-02-11
          • 2010-09-06
          • 2012-10-01
          • 2010-11-15
          • 2013-06-27
          相关资源
          最近更新 更多