![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Alix |
|
|||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Друг ковырялся в сорсах Paint.net, а я там увидел такое:
Заинтересовался, решил проверить. Программа на дельфи прилагается. К ней пара комментариев:
В общем не понятно, стоит ли использовать подобную процедуру. Что думаете? Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Alix, подробнее что это такое? В каких единицах результат? Что измеряется?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Alix |
|
||||||||||||||||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
блок кода, выполняющий измерение. iter = 10. Подставляются следующие куски кода (в порядке перечисления в посте выше):
массив описан так:
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||||||||||||||
|
|||||||||||||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
memo1.Lines.add(inttostr®); - так не годиться, это нужно убрать. Максимум создать массив интов статического размера и туда записывать значение... и то врать будет страшно. Лучше не делать совсем этого при выключенной оптимизации. И использовать QuoeryPerformance для измерение периодов времени.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Alix |
|
|||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
она выключена только для второго теста, для всех остальных - по умолчанию. Это даст точность? В принципе для ее повышения я и делаю десять итераций, разница в 2сек - это уже довольно много чтобы считать погрешностью или я не прав? -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Чем больше итераций тем тем сильнее кэширование + прерывания других процессов. Итераций 10 вполне хватит. Лучше не делать никаких добавлений - memo1.Lines.add эта операция в 1000 раз дольше деления и весь тест идет насмарку. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Alix |
|
||||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
изменил так:
Сделал iter = 10000, такие результаты:
Добавлено @ 19:52
ага... возможно... попробую с perfomancequery Добавлено @ 19:58 С использованием QueryPerformanceCounter, результаты (в попугаях) таковы (iter=10): 45561 50252 158851 131384 112994 Мдя... Это сообщение отредактировал(а) Alix - 23.3.2008, 20:01 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Alix, еще такой интересный факт. Обращение к большим глобальным массивам тоже может оказаться дольше деления.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Alix |
|
|||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
возможно, но ведь это обращение у всех методов одинаково, разница только в делении. -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
помоему всегда на 32, даже если тип операнда byte или word -------------------- Обижено школьников: 8 |
|||
|
||||
Alix |
|
|||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Разумеется. Но там есть вызов и без функции. Мне было интересно проверить, если такое деление будет достаточно быстрым, будет ли так же быстрым оно при вызове из функии.
Оказалось, что да. Однако вот из хелпа:
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
Esperito |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 2.9.2007 Репутация: 1 Всего: 3 |
Я немного изменил программу и взял другой счётчик. Если проводить несколько тестов, дабы исключить всякие случаи ухода процессора на другие задачи, получается примерно вот такое:
div 29492530 non-optimized div {$O-} 29403580 divide routine 46843200 direct code 38055380 direct code + var 53020300 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |