Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

Скорость сравнений и присваиваний - C++

31.03.2013, 17:40. Просмотров 773. Ответов 8
Метки нет (Все метки)

Доброго времени суток.
Интересует вопрос: насколько примерно процесс сравнения двух элементов (напр. типа int) проходит быстрее, чем присваивание одному элементу значения другого. Что меняется, если сравниваются не переменные встроенных типов, а объекты определённых в программе классов?
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
31.03.2013, 17:52     Скорость сравнений и присваиваний #2
Цитата Сообщение от PG94 Посмотреть сообщение
Что меняется, если сравниваются не переменные встроенных типов, а объекты определённых в программе классов?
для объектов вызывается "функция"-оператор сравнения, не?
О чём вообще вопрос? Зачем сравнивать тёплое с мягким?
Kastaneda
Форумчанин
Эксперт С++
4468 / 2830 / 224
Регистрация: 12.12.2009
Сообщений: 7,199
Записей в блоге: 1
Завершенные тесты: 1
31.03.2013, 21:42     Скорость сравнений и присваиваний #3
Цитата Сообщение от PG94 Посмотреть сообщение
насколько примерно процесс сравнения двух элементов (напр. типа int) проходит быстрее, чем присваивание одному элементу значения другого
сравнение в общем случае кодируется в инструкцию cmp, а присваивание mov.
Сейчас посмотрел Intel мануале, там не написано сколько тактов выполняется каждая инструкция, потому что это зависит от конкретного процессора. Немного погуглил, в среднем обе инструкции выполняются за одинаковое кол-во тактов.
А в связи с чем такой вопрос возник, это вроде совсем не похожие операции?
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
31.03.2013, 21:58  [ТС]     Скорость сравнений и присваиваний #4
Нужно исследовать скорость различных типов сортировок. Чтобы вычислить относительное время работы каждой, нужно будет добавить задержки, с величиной которых пока ещё до конца не определился. Отсюда и вопрос.
nonedark2008
851 / 590 / 116
Регистрация: 28.07.2012
Сообщений: 1,583
31.03.2013, 22:03     Скорость сравнений и присваиваний #5
Цитата Сообщение от PG94 Посмотреть сообщение
нужно будет добавить задержки
Что за бред??? Чтобы вычислить время работы функции, выполни эту функцию 100000 раз, засеки время и подели его на эти 1000000. Тогда получишь время выполнения функции для заданного n, так проделай с каждой функцией, затем измени n, и опять тоже самое. А потом сравни как изменилось время у всех функций с изменением n.
Kastaneda
Форумчанин
Эксперт С++
4468 / 2830 / 224
Регистрация: 12.12.2009
Сообщений: 7,199
Записей в блоге: 1
Завершенные тесты: 1
31.03.2013, 22:05     Скорость сравнений и присваиваний #6
Цитата Сообщение от PG94 Посмотреть сообщение
Нужно исследовать скорость различных типов сортировок
А для каких целей? Если в конечно счете все нужно свести к О нотации, то при расчетах скорость сравнения и обмена задается как C1, C2, а потом эти С вообще отбрасываются.
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
31.03.2013, 22:53  [ТС]     Скорость сравнений и присваиваний #7
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Что за бред???
Да, согласен, последую вашему совету. Всем спасибо за участие.
Figga
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 72
13.01.2014, 21:22     Скорость сравнений и присваиваний #8
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Что за бред??? Чтобы вычислить время работы функции, выполни эту функцию 100000 раз, засеки время и подели его на эти 1000000. Тогда получишь время выполнения функции для заданного n, так проделай с каждой функцией, затем измени n, и опять тоже самое. А потом сравни как изменилось время у всех функций с изменением n.
По мне это не достаточно точный метод. Этот эксперемент проделанный несколько раз буде каждый раз иметь разные значения, так как это не единственый процесс выполняемый на компе.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 21:36     Скорость сравнений и присваиваний
Еще ссылки по теме:

C++ Решение линейных сравнений по модулю a*x = b (mod m)
C++ Отсортировать 5 чисел за 7 сравнений
C++ Количество обменов и сравнений в HeapSort
C++ Решение линейных сравнений с одним неизвестным
C++ Быстрая сортировка,количество сравнений

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
nonedark2008
851 / 590 / 116
Регистрация: 28.07.2012
Сообщений: 1,583
13.01.2014, 21:36     Скорость сравнений и присваиваний #9
Цитата Сообщение от Figga Посмотреть сообщение
По мне это не достаточно точный метод.
Что такое достаточность точности?
Точности данного теста вполне хватает для проверки ассимптотики алгоритмов сортировки.
Если сомневаешься в точности результата, то проведи серию тестов, подсчитай дисперсию и тогда уже делай заявления о достаточности или недостаточности точности по отношению к задаче...
Yandex
Объявления
13.01.2014, 21:36     Скорость сравнений и присваиваний
Ответ Создать тему
Опции темы

Текущее время: 14:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru