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

for (lnLoopCounter = 0; lnLoopCounter < lnMaxLoopIteratorCount; lnLoopCounter++)

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

for (lnLoopCounter = lnMaxLoopIteratorCount; lnLoopCounter--; )

Я протестировал код с другой итерацией цикла и обнаружил, что второй вариант быстрее.

Результат для времени, затрачиваемого другим циклом в наносекундах на итерации цикла, показан на изображении ниже:

Примечания :

  1. результаты могут различаться в разных системах.
  2. библиотека chrono используется для расчета разницы во времени.

Образец кода, написанный мной, приведен ниже для справки.

#include <iostream
#include <chrono>
int main()
{
    char ch = 'n';
    do
    {
        long int lnLoopCounter = 0, lnLoop1Variable = 0, lnLoop2Variable = 0;

        long int lnMaxLoopIteratorCount = 10;

        std::cout << "Enter loop iteration count : ";
        std::cin >> lnMaxLoopIteratorCount;
        // loop 1 start time
        auto Loop1StartTime = std::chrono::high_resolution_clock::now();    
        // loop 1 : standard looping used by the developers 
        for (lnLoopCounter = 0; lnLoopCounter < lnMaxLoopIteratorCount; lnLoopCounter++)
        {
            ++lnLoop1Variable;  // incrementing loop 1 variable
        }
        // loop 1 elapsed time
        auto Loop1ElapsedTime = std::chrono::high_resolution_clock::now() - Loop1StartTime;
        // calculating loop 1 execution time
        long long Loop1ExecutionTime = std::chrono::duration_cast<std::chrono::nanoseconds>(Loop1ElapsedTime).count(); 
        // loop 2 start time
        auto Loop2StartTime = std::chrono::high_resolution_clock::now(); 
        // loop 2 : optimized loop which may be difficult to read but faster execution
        for (lnLoopCounter = lnMaxLoopIteratorCount; lnLoopCounter--; )
        {
            ++lnLoop2Variable;  // incrementing loop 2 variable
        }
        // loop 2 elapsed time
        auto Loop2ElapsedTime = std::chrono::high_resolution_clock::now() - Loop2StartTime; 
        long long Loop2ExecutionTime = std::chrono::duration_cast<std::chrono::nanoseconds>(Loop2ElapsedTime).count(); // calculating loop 2 execution time

        std::cout << "Value of lnLoop1Variable is " << lnLoop1Variable << " time taken in nanoseconds for loop 1 execution is " << Loop1ExecutionTime << std::endl;
        std::cout << "Value of lnLoop2Variable is " << lnLoop2Variable << " time taken in nanoseconds for loop 2 execution is " << Loop2ExecutionTime << std::endl;

        std::cout << std::endl << "Press 'y' and enter to repeat the test. ";
       
        std::cin >> ch;
        std::cout << std::endl;
    } while (ch == 'y');
    return EXIT_SUCCESS;
}