Оптимизация локальных переменных в цикле Objective C - PullRequest
2 голосов
/ 30 января 2012

Я помню, много лет назад они учили нас создавать локальные переменные вне циклов, например:

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];
    (...)
}

Я прав?

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Насколько я знаю, это и многое другое (описание цикла, прогноз ветвления и т. Д.) Будет выполняться автоматически вашим компилятором.Нет необходимости в преждевременной оптимизации.

Просто свяжитесь с лучшими практиками и «хорошими шаблонами проектирования» и позвольте компилятору выполнить свою работу!

Хорошая статья на Википедия и если вы действительно хотите узнать больше об этом, я бы порекомендовал прочитать «Aho, Lam, Sethi, Ullman, Принципы, методы и инструменты компиляторов, второе издание. Addison-Wesley, 2006».

2 голосов
/ 30 января 2012

for-in цикл оптимизирован для быстрого выполнения.

Например:

for( SomeVariable *var in someArray )
{
    //do something with var
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...