Меню Закрыть

Дата саентист и циклы-циклы-циклы…


«How I Met Your Mother», season 6, ep. 7

Коля любит циклы. Толя любит циклы. Оля любит циклы. Все любят циклы. И Сережа тоже.

Один Мамба их не любит. И вот почему.

Если опустить философские рассуждения, что все на уровне процессора является циклом или goto, то можно выделить три причины:

  1. При работе с индексами цикла можно легко проглядеть и допустить ошибку. Но тут помощь приходят итераторы.
  2. Очень часто циклы вручную пишутся очень неэффективно с точки зрения манипуляций с памятью — сильная просадка по производительности. А у вложенных циклов еще и накладные на старт цикла.
  3. Нелинейная структура цикла (break, continue) не позволяют сделать хорошую оптимизацию на уровне процессора или компилятора. А это дополнительно означает, что распараллелить цикл по вычислителям будет очень трудно. В решении этого вопроса помогает функциональный подход и итераторы. Если известно о независимости вычислений значений каждого отдельного шага — надо сообщать об этом компилятору явно.

Все предыдущие публикации.

Читать дальше →

Читать дальше