Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Какой код имеет более высокую скорость исполнения?

ФермаКактусов Высший разум (215960), закрыт 10 месяцев назад
 индекс
for (size_t i = 0; i < N; ++i) {
c[i] = (b[i] == 0) ? b[i] : (a[i] / b[i]);
}

 указатель
int* it_a = a;
int* it_b = b;
for (auto& it_c : c) {
it_c = (*it_b == 0) ? *it_b : (*it_a / *it_b);
++it_a;
++it_b;
}
Лучший ответ
Игорь Герман Высший разум (197154) 10 месяцев назад
<22.02.2024>


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

Преимущество скорости указателей наиболее заметно при
последовательном доступе к элементам массива.
IMHO — лучше писать через индексы.


_НЕТУЖАЛЬ_Высший разум (426083) 10 месяцев назад
Скорость выполнения кода может значительно варьироваться в зависимости от выбранного языка программирования и типов данных. При выборе языка программирования для конкретного проекта важно учесть не только его синтаксис и особенности, но и производительность. Однако у каждого языка есть свои сильные и слабые стороны, и нет «лучшего» языка для всех задач.
Игорь Герман Высший разум (197154)
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (450081) 10 месяцев назад
Разыменование указателя - это лишняя операция LEA.
Поэтому первый должен быть быстрее.
Похожие вопросы