![]() |
|
Модераторы: bsa |
![]()
|
|
| murzilka6002 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
Программа выполняет поиск по дереву, и замеряет время поиска. Вот в чём проблема: при повторном поиске тех самых данных (даже если программу перезапускаю) время выдает равное нулю. Как бы запоминает где что было и попросту выводит результат поиска - соответственно время равно 0. Даже если программу перезапускаю - всё так же, помагает только перезапуск компьютера. В сём причина?
Вот код:
Была ошибка в коде, но уже изменил, но это на результат не влияет Это сообщение отредактировал(а) murzilka6002 - 13.12.2011, 22:51 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Очень нерационально делать подсчет времени для операции ввода. Вынеси cin>>szuk до строки 47. Думаю, после этого результаты стабилизируются... на 0-й отметке.
|
|||
|
||||
| murzilka6002 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
Я это уже изменил (это просто случайно старый код бросил), но результат такой же. Если два разы подряд ввести одно и то де слово для поиска.
|
|||
|
||||
| Estranged |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: нет Всего: 3 |
Надо использовать таймер с большей разрешающей способностью. За 1 мс процессор успевает выполнить всю программу.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Как вариант, можно прогнать поиск 10000 раз. Тогда будет более адекватная скорость.
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Да, всё верно.
А первый раз время тратится на загрузку модуля, системного кеша и т.д., а это довольно внушительное время. Последующие разы, счет происходит быстрее одного тика таймера. |
|||
|
||||
| murzilka6002 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
Но дело в том, что при задавании повторного поиска но другого слова - всё показывает верно, или загрузка модуля, системного кеша производиться для каждого поискового слова?
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
murzilka6002,
clock(); это очень и очень грубый таймер. тик под виндой происходит, если не ошибаюсь, 1 раз в ~15 msec. Таким таймером, можно измерять только большие времена (порядка 1 секунды и больше). Послушайте совета что вам говорили. Либо возьмите более точный таймер (в соседней теме где-то обсуждение) Либо зациклите программу, чтобы она 1000 раз выполняла операцию. Тогда можно будет говорить о каких-то объетивных результатах измерения. |
|||
|
||||
| rumit7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.6.2011 Репутация: нет Всего: 7 |
В обсуждении вот здесь, рекомендовали вот эту библиотеку |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |