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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 93, средняя оценка - 4.61
Svinina
5 / 5 / 0
Регистрация: 28.11.2010
Сообщений: 81
#1

как с точностью до микросекунд замерить время - C++

16.11.2011, 12:33. Просмотров 12563. Ответов 44
Метки нет (Все метки)

Товарищи, подскажите, как с точностью до микросекунд замерить время выполнения некоторой функции?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.11.2011, 12:32     как с точностью до микросекунд замерить время #41
*Сложность алгоритмов вычисляется задолго до начали их программирования.
Увеличение скорости на доли секунды (или даже секунды) в 99.999% по барабану. Важна лишь сложность алгоритма. А она известна на этапе проектирования алгоритма, задолго до начала его реализации.
Если скорость алгоритма (сильно) не устраивают, то меняют алгоритм, а не выполняют оптимизацию.
Оптимизация это самый последний шаг, который лучше не делать.
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,345
17.11.2011, 12:40     как с точностью до микросекунд замерить время #42
Не путай сложность алгоритма (которую действительно можно вычислить на этапе проектирования, до его реализации) и время его выполнения. Это не одно и то же.
Bers
Заблокирован
17.11.2011, 12:41     как с точностью до микросекунд замерить время #43
Цитата Сообщение от Deviaphan Посмотреть сообщение
*Сложность алгоритмов вычисляется задолго до начали их программирования.
Увеличение скорости на доли секунды (или даже секунды) в 99.999% по барабану. Важна лишь сложность алгоритма. А она известна на этапе проектирования алгоритма, задолго до начала его реализации.
Если скорость алгоритма (сильно) не устраивают, то меняют алгоритм, а не выполняют оптимизацию.
Оптимизация это самый последний шаг, который лучше не делать.
O(log) или О какая.. это как бы речь о сложности алгоритма, да..
Есть такое. Я в этом кстати, ни бум бум. Но здесь же речь не о сложности, а о скорости. Это две большие разницы.

Сложность алгоритма к скорости имеет лишь относительное отношение.

Можно, например, сказать, что один алгоритм работает с постоянной скоростью. Другой - зависит от количества элементов. Ну и тд. Фактическое среднестатистическое знание по времени может дать только эксперимент.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.11.2011, 12:52     как с точностью до микросекунд замерить время #44
Цитата Сообщение от Bers Посмотреть сообщение
Фактическое среднестатистическое знание по времени может дать только эксперимент.
"Среднестатистическое знание" дать никто не сможет. Только для конкретного компьютера при конкретных условиях работы.

О-сложность имеет к скорости самое прямое отношение. Т.к. оптимизации кода, а в некоторых случаях даже языки, можно рассматривать как константу. Т.е. пренебречь при оценке сложности.

Впрочем, согласен. Меня не в ту степь понесло. Тут речь не об этом.
Тут кто-то собирался оценивать скорость алгоритма путём миллиардов запусков? Например алгоритм решения матриц размером 10000х10000 (хотя бы), посчитайте пару миллиардов раз, чтобы среднюю скорость алгоритма вычислить.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
"Среднестатистическое знание" дать никто не сможет.
Извиняюсь. Слово "эксперимент" прочитал как "эксперт". Гугл.транслэйт такой транслэйт.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 20:13     как с точностью до микросекунд замерить время
Еще ссылки по теме:

Найти arctg(x) как бесконечную сумму с заданной точностью C++
Текущее время с точностью до миллисекунд C++
C++ Вычислить функцию, заданную как сумму ряда с заданной точностью
C++ Как посчитать ряд с точностью до E?
C++ Как записать число с плавающей точкой с заданной точностью?

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

Или воспользуйтесь поиском по форуму:
Svinina
5 / 5 / 0
Регистрация: 28.11.2010
Сообщений: 81
17.11.2011, 20:13  [ТС]     как с точностью до микросекунд замерить время #45
Эко вы далеко зашли, товарищи.=)
Нужна была всего лишь функция замера времени для оценки ускорения параллельной программы.
В итоге использовал timeofday().
Yandex
Объявления
17.11.2011, 20:13     как с точностью до микросекунд замерить время
Ответ Создать тему
Опции темы

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