Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2015, 16:04   #1
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию 0.5 быстрее работает чем /2

Слышал что умножение на 0.5 работает быстрее чем деление на 2.Правдо ли это?
ts-alan вне форума Ответить с цитированием
Старый 01.09.2015, 16:55   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

А битовый сдвиг еще быстрее
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 01.09.2015, 18:01   #3
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

так быстрее или нет?
ts-alan вне форума Ответить с цитированием
Старый 01.09.2015, 18:05   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

быстрее, быстрее. именно поэтому хороший компилятор все твои /2 заменит на *0.5.
f.hump вне форума Ответить с цитированием
Старый 01.09.2015, 18:10   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А почему быстрее? Потому что не требуется преобразование из целого в вещественное?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2015, 18:21   #6
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

я думал про плавающую точку (/2 == /2.0), у целочисленных операций другие правила.
если цитровать мануал от Интел, то общее правило оптимизации гласит, что если есть возможность использовать умножение вместо деления, то это нужно делать. для целочисленных операций это эквивалентно замене деления на умножение mod N (a/b = a*c mod N, c = N/b).

Последний раз редактировалось f.hump; 01.09.2015 в 18:36.
f.hump вне форума Ответить с цитированием
Старый 01.09.2015, 18:39   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А в чем там оптимизация, интелл не пишет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2015, 18:51   #8
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
Modern compilers typically can transform high-level language expression involving
integer division where the divisor is a known integer constant at compile time into a
faster sequence using IMUL instruction instead. Thus programmers should minimize
integer division expression with divisor whose value can not be known at compile
time.
Цитата:
Expensive Instructions: Some instructions have special requirements and
become expensive in consuming hardware resources for an extended period
during execution. It may be delayed in execution until it is the oldest in the
instruction queue; it may delay the issuing of other younger instructions.
Examples of these include FDIV, instructions requiring execution units from both
ports, etc.
Intel 64 Optimization Reference Manual

ну, еще там можно найти таблицы latency/thoughput для существующих архитектур, и как ни странно, деление в 5-10 раз медленнее умножения.

замена деления на умножение попадает в категорию performance optimization.

Последний раз редактировалось f.hump; 01.09.2015 в 19:00.
f.hump вне форума Ответить с цитированием
Старый 01.09.2015, 19:22   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Понятненько )
Ну спс. за инфу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2015, 08:01   #10
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

Цитата:
именно поэтому хороший компилятор все твои /2 заменит на *0.5.
компилятор C# тоже это делает?
ts-alan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольное приложение работает быстрее winform? gramp C# (си шарп) 2 22.04.2012 00:41
Sin быстрее чем из math.h Medved.tolik Помощь студентам 5 05.02.2012 18:40
двигаю контрол мышкой, почему мышка перемещается быстрее чем контрол PaulRom Microsoft Office Access 0 06.12.2011 11:19
Почему inc работает быстрее обычного сложения Rusl92 Паскаль, Turbo Pascal, PascalABC.NET 9 26.04.2010 11:58
Помогите пожалуйста с лабами по делфи(чем быстрее, тем лучше) Vera_Valera Помощь студентам 1 06.06.2009 10:08