![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Pakshin A. S. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Появилось желание замерить время выполнения алгоритма в программе для последующей его оптимизации. Завести таймер как-то не хочется, так как не красиво... Поэтому хотелось сделать замер более изящным.
Общая схема мне так представляется:
Как реализовать? ![]() |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
|
|||
|
||||
Pakshin A. S. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Спасибо за оригинальный овтет.
![]() |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 4 Всего: 110 |
еще можно попробовать GetThreadTimes...
-------------------- qqq |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
см. profiler
В Visual C++ ты можешь посмотреть например сколько времени длится каждая функция... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Pakshin A. S.,
Посмотри на http://forum.vingrad.ru/index.php?showtopic=84401&hl= Очень точно время замерить нельзя - все-таки не система реального времени. В качестве варианта можешь запкстить поток свысоким приоритетом, в нем алгоритм прогр\нать в цикле раз 100, средние результаты получить. Либо запускать в консольном приложении, чтобы не влиял GUI. -------------------- |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Только GetThreadTimes!
Только GetThreadTimes! -------------------- Обижено школьников: 8 |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
С какой стати? Проблемы точно те же - ОС не RealTIme. Добавлено @ 15:23 Хотя в отдельном потоке будет точнее. Да и других факторов много. -------------------- |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Ну и что?
если при переходе кернелмод<->юзермод, и при сохранениии-восстановлении контекста потока делать замеры времени (а примерно эту инфу и получает GetThreadTimes, мне так кажеться))) то результат будет точным. Проблема с реалтаймом-нереалтаймом возникает когда нужно предсказать/установить это время заранее, а если нужно только замерять, какая разница? Это сообщение отредактировал(а) bems - 1.4.2006, 15:30 -------------------- Обижено школьников: 8 |
|||
|
||||
AZDesign |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.6.2005 Репутация: нет Всего: нет |
Измерения проводятся для оптимизации алгоритма на своем компьютере. В этом случае все рассуждения о Real-Time теряют смысл. Есть компьютер со свои быстродействием и своими накладными расходами. До оптимизации и после оптимизации эти параметры не меняются. В этом случае замер делается просто:
|
||||||
|
|||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
GetThreadTimes! -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |