【问题标题】:Optimization of local variables in Objective C loopObjective C循环中局部变量的优化
【发布时间】:2012-01-30 20:42:41
【问题描述】:

我记得很多年前他们教我们在循环之外创建局部变量,例如:

SomeVariable* var;
for(int i; i<10; i++)
{
    var = [someArray objectAtIndex:i];
    (...)
}

我会假设使用现代编译器,这种优化是自动完成的,例如在 Objective C 中,下面的代码将被优化为与上面的代码一样快:

for(int i; i<10; i++)
{
    SomeVariable* var = [someArray objectAtIndex:i];
    (...)
}

我说的对吗?

【问题讨论】:

    标签: objective-c ios optimization loops compiler-construction


    【解决方案1】:

    for-in 循环经过优化以尽可能快地执行。

    例如:

    for( SomeVariable *var in someArray )
    {
        //do something with var
    }
    

    【讨论】:

    • 真的吗?循环展开怎么样。
    【解决方案2】:

    据我所知,这些以及周围的很多东西(循环概述、分支预测等)都将由您的编译器自动完成。无需过早优化。

    只需接触最佳实践和“良好的设计模式”,让编译器完成它的工作!

    Wikipedia 上的好文章,如果您真的有兴趣了解更多信息,我建议您阅读“Aho, Lam, Sethi, Ullman, Compilers Principles, Techniques, and Tools, Second Edition. Addison-Wesley, 2006 。”

    【讨论】:

    • 感谢维基百科和本书的链接。我知道优化技术,只是想确认优化发生在 OjbectiveC 编译中按预期进行,因为我正在照顾其他人的代码,其中有很多类似我的问题的语句。
    猜你喜欢
    • 2014-09-28
    • 2017-09-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    相关资源
    最近更新 更多