Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 19:18   #11
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Многие считают что мерить надо именно при нормальном приоритете, чтоб винда и другие проги как раз таки-мешались... Более полевые условия чтоль...

Какой компилятор у вас? *
Если по хорошему, то мерить нужно вообще либо в рилмоде (но тут трабла в 640Kb RAM), либо под протект модем но тоже из доса, чтобы был доступ верхней памяти и небыло многозадачности.

Я приводил результаты для FPC v2.4.0 и Delphi v7. Какой компилятор? Да значения не имеет в принципе, разве что цифры для FillChar будут отличаться, а он особенно мне не интересен. Вот последние результаты, с замененной командой в SSE цикле тестирования:
Цитата:
FillChar() time: 5891 ms
rep stosd time: 5875 ms
MMX fill: 6140 ms
SSE fill: 2672 ms
Как здесь видно, SSE выигрывает почти в 2 (!!!) раза у всех остальных. Главное не забывать в своих прогах проверять, поддерживает ли процессор SSE.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 03.10.2010, 19:40   #12
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию


Intel Core 2 Quad
но я сдела небольшое дополнение. я в каждом цикле перед очисткой заполнял массив. так как в реальной работе ему прийдется работать именно с мусорным массивом. но время вычисляется только очистке. хотя и до этого усовершенствования цифры не сильно отличались. прибавилось по несколько десятков. в отличии от FillChar который начал работать быстрее.

Последний раз редактировалось ViktorXP; 03.10.2010 в 19:44.
ViktorXP вне форума Ответить с цитированием
Старый 03.10.2010, 20:12   #13
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

ViktorXP - а в цикле SSE тестирование заменили команду на movntdq ?
Хорошая идея, с заполнением массива. Короче удалил из первой страницы исходник и скомпилированную версию, сейчас новую прикреплю, чтоб народ с толку не сбивать, где и массив каждый раз будет заполнятся перед тестированием и уже будет команда movntdq в цикле SSE тестирования.
Вложения
Тип файла: rar fastfill.rar (15.1 Кб, 10 просмотров)
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 03.10.2010, 20:40   #14
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Цитата:
Какой компилятор? Да значения не имеет в принципе,
Разумеется, просто говорю ж - мой FPC не работает, я кажется его совсем сломал...
Цитата:
я в каждом цикле перед очисткой заполнял массив. так как в реальной работе ему прийдется работать именно с мусорным массивом.
Хм... Думаете сильно будет отличаться?
Цитата:
а в цикле SSE тестирование заменили команду на movntdq ?
Я щас на Делфи переделываю... У меня будет и то и то... И "отчёт" выровнял tab'ами...

Цитата:
SSE fill: 984 ms
Покачто оно довольно жестоко у всех выигрывает... :3
Потестю завтра на старых/разных компах...
I am the First of Cyber Evolution...
I am the First to Program your Future...

Последний раз редактировалось DomiNick; 03.10.2010 в 20:43.
DomiNick вне форума Ответить с цитированием
Старый 03.10.2010, 20:44   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а разве через loop не быстрее?(или я не прав?)
причем в боевых условиях...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.10.2010, 21:00   #16
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а разве через loop не быстрее?(или я не прав?)
причем в боевых условиях...
loop вообще тормозная команда, если вы про ассемблер. Стоит избегать ее, и делать по возможности циклы с помощью команд сравнения cmp. Тут я уж забил на это, поэтому юзаю таки loop в MMX и SSE.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать клас для динамического массива supra89kren Общие вопросы C/C++ 5 30.03.2010 00:23
Можно ли к функции ellipse(x1,y1,x2,y2) применить прозрачный Brush Mr.Steroid Мультимедиа в Delphi 2 04.03.2010 21:47
Переделать для динамического массива. Ueshua Общие вопросы C/C++ 1 20.12.2009 21:33
операция NEW для динамического массива -ushёl- Общие вопросы C/C++ 0 14.11.2009 22:00
Как можно применить к тексту комонент PageSetupDialog Bill Gates Общие вопросы Delphi 1 30.12.2007 20:17