«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Есть ли разница в производительности между while (1) и for(;;) в бесконечных циклах?

Есть ли разница в производительности между while (1) и for(;;) в бесконечных циклах?

Опубликовано 7 ноября 2024 г.
Просматривать:978

  Is There a Performance Difference Between `while (1)` and `for(;;)` in Infinite Loops?

Пока (1) и For (;;) Сравнение скорости

В ходе оживленной дискуссии возник вопрос: А работает ли while (1 ) выполняться быстрее, чем for (;;) в бесконечном цикле? Чтобы положить конец дебатам, участники приступили к подробному анализу.

Результаты Perl и GCC

Тщательное исследование показало, что в Perl обе конструкции генерируют идентичные коды операций. Аналогично, в GCC оба компилируются с использованием одних и тех же инструкций ассемблера. Следовательно, в этих средах разница в скорости незначительна.

Вывод

В основе дискуссии лежит утверждение, что while (1) выполняет ненужное сравнение ( 1 == 1). Однако, как показал анализ кода операции, такого сравнения не происходит.

Хотя выбор между этими двумя конструкциями бесконечного цикла может не оказать существенного влияния на производительность, важно помнить, что оптимизация кода внутри цикла гораздо более эффективен.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3