Будет ли быстрее использовать цикл for или перечислить операции? - PullRequest
0 голосов
/ 19 сентября 2019

Я работаю над кодом для выполнения матричных операций для спутника, который готовит моя школа.Будет ли быстрее и менее ресурсоемким использовать цикл for или просто записывать операции?Все матрицы имеют известный размер

for (i = 0; i < 3; i++)//Row
{
    for (j = 0; j < 3; j++)//Column
    {
        result[i][j] = a[i][j] * b;
    }
}

или

result[1][1] = a[1][1] * b;
result[1][2] = a[1][2] * b;
etc...

1 Ответ

0 голосов
/ 19 сентября 2019

Вы говорите о развертывании цикла.Вы правы, это общепринятая методика сокращения времени вычислений программы.Однако, как было сказано в комментариях, вы не совсем уверены, что сэкономите время, поскольку это зависит от многих факторов (компилятор, уровень оптимизации компилятора и т. Д.).Также возможно, что компилятор развернет циклы сам, если вы выберете высокий уровень оптимизации.

Не забывайте, что требуется больше размера кода, что также является ценным ресурсом.

Сохранить вНе забывайте, что есть и другие способы оптимизации кода.Например, здесь вы умножаете все элементы в массиве на одну и ту же переменную.Возможно, вы сможете выполнить это умножение позже в коде, когда снова получите доступ к массиву result?Это сохранит перемещение массива со всеми обращениями к памяти, которые это подразумевает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...