Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.14.130.13] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Я и говорю, что могут две в один такт. На PI/MMX етого не было, в смысле, два полных цикла, с декодированием, исполнением, выкидыванием результата в регистр. Как правило, ети фазы совмещались со сдвигом на 1 такт.
Но в любом случае, когда результат одной команды является аргументом другой, планировщик процессора поставит их последовательно во входной поток одного исполнительного устройства. Другое в етот момент будет простаивать, если не занимается завершением длинной команды, попавшей в него раньше |
Сообщ.
#17
,
|
|
|
Вообще, на туму оптимизации, в том числе циклов, есть очень хорошая статья К. Касперского. Я впервые прочитал её в "Програмисте", а потом наткнулся в интернете. Можно поискать и найти ИСЧЕРПЫВАЮЩИЙ ответ. Как я понимаю, по большему счёту всё зависит от компилятора и того как он умеет оптимизировать код.
Я, например стараюсь по возможности использовать циклы с постусловием и с убывающим счётчиком, который явно указываю, как регистровую переменную и иногда это приносит свои плоды |
Сообщ.
#18
,
|
|
|
Voobsche vsye zavisit ot kompilyatora i processora.
Naprimer na microkontrollere PIC for(i=0;i<a;i++) vypolnyaetsya bystree. |
Сообщ.
#19
,
|
|||
|
Если size() это метод, то ессессна што быстрей. Потому что во втором случае этот метод (точнее все операции из которых он состоит, а это не один цикл) будет выполняться в конце каждой итерации. ...впрочем здесь речь не об этом... |