powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Инкременты
13 сообщений из 13, страница 1 из 1
Инкременты
    #34519046
Stason
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут у меня тоже встал вопрос. Почему ++i выполняется быстрее чем i++.
...
Рейтинг: 0 / 0
Инкременты
    #34519106
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StasonТут у меня тоже встал вопрос. Почему ++i выполняется быстрее чем i++.

++i;
1. Инкрементирует объект i
2. Возвращает i

i++;
1. Создает новый объект, копияю i
2. Инкерментирует i
3. Возвращает копию
...
Рейтинг: 0 / 0
Инкременты
    #34519127
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теоретически затраты на создание временного. Но что мы видим:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      8 : 	int i =  5 ;
00411A1E  mov         dword ptr [i], 5  
      9 : 
     10 : 	i++;
00411A25  mov         eax,dword ptr [i] 
00411A28  add         eax, 1  
00411A2B  mov         dword ptr [i],eax 
     11 : 	++i;
00411A2E  mov         eax,dword ptr [i] 
00411A31  add         eax, 1  
00411A34  mov         dword ptr [i],eax 

Усложним:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     11 : 	a = i++;
00411A25  mov         eax,dword ptr [i] 
00411A28  mov         dword ptr [a],eax 
00411A2B  mov         ecx,dword ptr [i] 
00411A2E  add         ecx, 1  
00411A31  mov         dword ptr [i],ecx 
     12 : 	a = ++i;
00411A34  mov         eax,dword ptr [i] 
00411A37  add         eax, 1  
00411A3A  mov         dword ptr [i],eax 
00411A3D  mov         ecx,dword ptr [i] 
00411A40  mov         dword ptr [a],ecx 
Кто-нибудь видит разницу в скорости?
...
Рейтинг: 0 / 0
Инкременты
    #34519180
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceТеоретически затраты на создание временного. Но что мы видим:

По всей видимости у Stason какой-нибудь другой компилятор, или переменная i более сложна чем int.
...
Рейтинг: 0 / 0
Инкременты
    #34519207
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akh
По всей видимости у Stason какой-нибудь другой компилятор, или переменная i более сложна чем int.
Да, наверно.. все больше убеждаюсь все низкоуровневые фишки, очень полезные например при оптимизации, от компилятора зависят на 100%, и стандартом не оговорены почему-то.
...
Рейтинг: 0 / 0
Инкременты
    #34519219
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace Akh
По всей видимости у Stason какой-нибудь другой компилятор, или переменная i более сложна чем int.
Да, наверно.. все больше убеждаюсь все низкоуровневые фишки, очень полезные например при оптимизации, от компилятора зависят на 100%, и стандартом не оговорены почему-то.

Так стандарт трактует идеалогию, а не реализацию.
...
Рейтинг: 0 / 0
Инкременты
    #34519228
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceУсложним:Если использовать более сложные выражения и включить оптимизацию, возможно, разница появится.
...
Рейтинг: 0 / 0
Инкременты
    #34519274
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace Akh
По всей видимости у Stason какой-нибудь другой компилятор, или переменная i более сложна чем int.
Да, наверно.. все больше убеждаюсь все низкоуровневые фишки, очень полезные например при оптимизации, от компилятора зависят на 100%, и стандартом не оговорены почему-то.
Вот так рождаются нездоровые сенсации. На int ты и не заметишь разницы, а для собственных типов, - как напишешь оператор - так и получится. Хотя Akh прав как правило постфиксная форма предполагает создание временного объекта. Во всяком случае в STL это так, поэтому она и предпочтительней при работе с итераторами.
...
Рейтинг: 0 / 0
Инкременты
    #34519704
Нашли на чём экономить.
...
Рейтинг: 0 / 0
Инкременты
    #34519729
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот_он_я_какой
Нашли на чём экономить.

Использование постфиксной формы инкремента является преждевременной пессимизацией.
...
Рейтинг: 0 / 0
Инкременты
    #34520121
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кхм… а с каких пор в моду вступил add eax,1 ?
...
Рейтинг: 0 / 0
Инкременты
    #34520161
Akh: Использование постфиксной формы инкремента является преждевременной пессимизацией .

ага, а еще бывает своевременная пессимизация %)
...
Рейтинг: 0 / 0
Инкременты
    #34520173
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Голенков ВладимирAkh: Использование постфиксной формы инкремента является преждевременной пессимизацией .

ага, а еще бывает своевременная пессимизация %)

Бывает. Но к данной теме это отношения не имеет. ;)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Инкременты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]