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

\ "В то время как (1) против (;;): Оптимизация компилятора исключает различия в производительности? \"

Опубликовано в 2025-06-14
Просматривать:990

  \

while (1) vs. for (;;;): существует ли разница в скорости?

] Вопрос:

. Использование (1) вместо (;) петли? Компиляторы:

] perl:

как (1), так и для (;;;) Приведите одни и те же Opcodes, как продемонстрировано Perl -mo = Corming Output:

1 enter -> 2 2 NextState (Main 2 -e: 1) V -> 3 9 Leaveloop VK/2 -> A 3 Enterloop (Next-> 8 Last-> 9 REDO-> 4) V-> 4 - lineseq vk -> 9 4 NextState (Main 1 -e: 1) V -> 5 7 print vk -> 8 5 pushmark s -> 6 6 const [pv "foo \ n"] s -> 7 8 unstack v -> 4 -e синтаксис ok

gcc:

в gcc, оба петли компилируют один и тот же код сборки, как показано ниже:

. Globl t_while t_while: .L2: Movl $ .lc0, �i звонок пут JMP .l2 .globl t_for t_for: .L5: Movl $ .lc0, �i звонок пут jmp .l5

 Поэтому в большинстве случаев нет необходимости предпочитать один выше другого на основе проблем производительности. Выбор может быть основан на читабетости кода или других факторах. ]
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3