
Сообщение от
Deviaphan
Забудь про ключевое слово register, его больше не существует. И принципиально нельзя создать объект не базового типа в регистрах.
Распараллеливать обнуление вектора бесполезно. Скорее даже потеряешь, чем выиграешь что-то.
Проходи по первой размерности при помощи итераторов (не индексов, а именно итераторов!) и для второй размерности используй memset, передавая указатель на первый элемент и размер массива в байтах. Эффективнее memset'a сложно что-то стандартное придумать. Только если на ассемблере напишешь обнуление DWORD'ов, тогда несколько быстрее будет.
Добавлено через 1 минуту
Ну и в релизе скорость смотри. Не может обнуление 3 миллионов элементов 200 мс занимать. Не верю!
Да, ты прав, в релизе все гораздо быстрее. Тогда в чем собстченно глубинный смысл того, что обнуление на дебаге работает в 20 раз медленнее автоматического спецификатора, а на релизе одинаково (почти) для 81млн. элементов?