![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
MIX55 |
|
|||
![]() много работы ![]() Профиль Группа: Awaiting Authorisation Сообщений: 208 Регистрация: 23.10.2005 Где: Здесь Репутация: нет Всего: 4 |
Есть две функции поиска подстроки в строке (предположим Function_1 и Function_2). Вопрос в следующем: как установить какая из функции "быстрее работает"?
--------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 15 Всего: 76 |
Дайтека подумать... вызвать раз так 100000 в цыкле каждую из них + GetTickCount.
Добавлено через 31 секунду В чем может быть проблема? -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
MIX55
Для определения скорости работы функции надо проводить испытания. Если попробовать разобраться в значении слова «Испытание», то можно наткнуться на понимае этого термина в теории вероятности. Не сложно догадаться, что чем больше испытаний мы произведём для одной и другой функции, тем правдивость утверждения о скорости р аботы той или иной функции увеличивается. Добавлено @ 14:44 Кратко и лаконично мои слова подтверждаются словами Rennigth:
Это сообщение отредактировал(а) Yanis - 3.4.2007, 14:45 |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 5 Всего: 12 |
Поищи здесь -> http://forum.vingrad.ru/topic-21411.html
Добавлено через 8 минут и 40 секунд http://vingrad.ru/DELPHI-ART-002245 |
|||
|
||||
MIX55 |
|
|||
![]() много работы ![]() Профиль Группа: Awaiting Authorisation Сообщений: 208 Регистрация: 23.10.2005 Где: Здесь Репутация: нет Всего: 4 |
в том то и вопрос. Один из вариантов предложенный Rennigth хорошо. Но из одного из этого нельзя сделать вывод что Function_2 работает быстрее(медленнее) Function_2. --------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 2 Всего: 89 |
А исходного кода функций разве нет?
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
||||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Потому, что есть такая вещь как кэширование. Второй и последующий запуски могут производиться намного быстрее первого. Если уж так делать, то нужно подставлять совершенно разные данные. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
remax |
|
|||
![]() Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Если разница во времени исполнения этих функций незначительная, то, безусловно, вопрос становится чисто риторическим и на результат тестирования будет влиять и кеш и направление ветра. Но, если речь идет о 10-15% (и больше), то ничего проще и эффективнее чем предложил Rennigth, просто нет. Конечно, можно попробывать оценить скорость выполнения этих функций исходя из теоретических подходов, например, все знают, что сложение - быстрее, чем умножение, а целочисленные операции быстрее вещественных. Однако, использование такого подхода, на мой взгляд, малоэффективно и ненадежно.
Добавлено через 7 минут и 57 секунд
Ага, только кэширование относится в первую очередь к коду программы, а не к данным, поэтому, подстановка совершенно разных данных особого смысла не имеет. Хотя, ничего сложного в разных данных нет - Random нам поможет и в цикле! А вообще, если серьезно, вопросы быстродействия, построения эффективных программ и т.д. и т.п. - очень важны и не тривиальны. Тестирование - не менее важная и сложная тема. И, к сожалению, нет готовых универсальных решений - в каждом конкретном случае необходимо учитывать конкретную специфику. -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |