【问题标题】:CGAffineTransformMakeRotation() QuestionCGAffineTransform MakeRotation() 问题
【发布时间】:2009-11-07 18:38:57
【问题描述】:

我想知道以下哪一项在内存上的成本更低?我注意到您可以省略 *M_PI 部分,它仍然可以正常工作。这是否意味着是否也保存了一些计算或是否重要?

例子:

CGAffineTransformMakeRotation(0.5*M_PI);

或者其他例子:

CGAffineTransformMakeRotation(0.7);例如。

我认为最后一个示例更有效,因为它不必乘以 PI,或者我的假设是否错误?

总的来说,我不认为其中任何一个都过度供电并且记忆力很差,我只是对引擎盖下发生的事情感到好奇。

【问题讨论】:

    标签: iphone


    【解决方案1】:

    两者都不是“内存吸收”,因为两者都涉及为 CGAffineTransform 结构分配的相同数量的内存。

    此外,两者都不提供 CPU 优势,因为 0.5*M_PI 可以在编译时计算,因此相当于编写 0.7 或其他常量。

    【讨论】:

    • 是的,我认为这是一个过早优化的情况。除非这在测试时显示为代码中的热点(我怀疑它会这样),否则请使用更简洁、更具描述性的实现。
    猜你喜欢
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多