Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> asm vs C/C++, скорострельность 
:(
    Опции темы
oleg1973
Дата 6.8.2004, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy




AndyY
а что исходники которые прилагаются слабо компильнуть?
или нехватает чегото?
а наезжать без понтово мы все умеем


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
oleg1973
Дата 6.8.2004, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy




и так специально для тех кто не имеет fasm
берем тут архив main.zip
в архиве 2 исходника и файл fasm.zip, распаковываем на диск С
открываем исходник жмем F9 получаем откомпилированый файл
если будете распаковывать компилер в папку отличную от C:\fasm
поправте в файле fasm.ini строку
[Environment]
Fasminc=C:\fasm\include
указав в ней путь к папке с инклудами

так как Анди есть фома неверущий в исходнике sort.asm
обавлена строка
Код
invoke GetLocalTime,stime
cmp [stime.wMilliseconds],word 0
jne func1

которая ждет пока в структуре stime элемент wMilliseconds не будет равен 0
после этого запускает процедуру сортировки
после возврата из проц
делается снова
Код
invoke GetLocalTime,stime1

и сравниваются 2 значения wMilliseconds
разница между ними есть примерное время выполнения проц сортировки
Анди , поражения надо признавать с гордостью, а не пытатся чета там доказать


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Chingachguk
Дата 6.8.2004, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




AndyY

Я полагаю, Вы неправы в выборе таких методов спора.

Если это что-то значит, то я могу сказать из опыта своего общения с oleg1973 следующие слова: он вряд ли способен на жалкий фальшивый мессджбокс.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
-=::BlackCat::=-
Дата 6.8.2004, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 12.7.2003
Где: растёт анаша?




ochen ohota wmeste s wami potestit eto delo, tolko vot gde mne value.dat wzjat ja ne ponjal =(


--------------------
-=::BlackCat::=-user posted image

такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать??  гррр, админ, форум косячит  
PM MAIL ICQ   Вверх
AndyY
Дата 8.8.2004, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб




Chingachguk
Я утверждаю, что разрешение GetLocalTime не хватает для измерения интервалов времени порядка десятка мс.

All
Кроме того, сортировка Олега не работает с отрицательными значениями и выдает неверный результат для количества элементов != 500000. Если второе сделано по невнимательности, то первое - сильное упрощение задачи. Как иллюстрацию приведу "супербыструю" сортировку для чисел в интервале 0-65535.
Качайте бинарник и сорец.

Обгоняет реализацию для dword в 10 разsmile.gif)


--------------------
PM MAIL WWW   Вверх
oleg1973
Дата 9.8.2004, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy




AndyY

Цитата
Я утверждаю, что разрешение GetLocalTime не хватает для измерения интервалов времени порядка десятка мс.

меньше 10 мс не отследиш, а 10 и более запросто
ну а если хочеш дальше мерятся письками, давай писать под realmode там можно с точностью до такта посчитать

Цитата
Кроме того, сортировка Олега не работает с отрицательными значениями и выдает неверный результат для количества элементов != 500000. Если второе сделано по невнимательности, то первое - сильное упрощение задачи.

ну не нада отмазки искать
всем кроме тебя было изначально ясен результат
то что у меня стоит 500000 фиксирвано на скорость АЛГОРИТМА не влияет
сделать вариант для отр. чисел - 5 мин работы

по любому спор был о СКОРОСТИ АЛГОРИТМА РЕАЛИЗОВАНОГО НА РАЗНЫХ ЯЗЫКАХ
а не о удобстве и наворотах программы


кстати твои файлы не качаются

Это сообщение отредактировал(а) oleg1973 - 9.8.2004, 01:23


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
AndyY
Дата 9.8.2004, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб




правильные линки:

бин
сорец

oleg1973
по поводу измерения времени - бред полный. разрешение подобных функций порядка 10-15 мс и есть, так что мерить этим можно где-то от 100-200 мс (с погрешностью 10%

поддержку сортировки нормальных DWORD таким методом не сделать никак - памяти не хватит, не надо разводить флейм про "5 минут".

500000 зашитое на скорость конечно не влияет, но не дает проверить вашу реализацию на большой выборке, а в совокупности с разрешением таймера - не дает сравнить быстродействие.


--------------------
PM MAIL WWW   Вверх
oleg1973
Дата 9.8.2004, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy




Цитата
по поводу измерения времени - бред полный. разрешение подобных функций порядка 10-15 мс и есть, так что мерить этим можно где-то от 100-200 мс (с погрешностью 10%

твоя прога и моим и твоим способом 80 мс показываеь такчто не будем лохматить бабушку
Цитата
поддержку сортировки нормальных DWORD таким методом не сделать никак - памяти не хватит, не надо разводить флейм про "5 минут".
а поспорим сделаю? изначально я и предлогал сортировку DWORD делать -0xffffffff до 0xffffffff, а ты по своей некомпетентности написал ламерский генератор 0-32767 а теперь еще и возмушаешся.

Цитата
500000 зашитое на скорость конечно не влияет, но не дает проверить вашу реализацию на большой выборке, а в совокупности с разрешением таймера - не дает сравнить быстродействие.
ну очередная отмазка, ты на Р1 запусти там сушественно заметней и на погрешность в 10-15мс уже ну никак не скосить.



Это сообщение отредактировал(а) oleg1973 - 9.8.2004, 11:17


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
AndyY
Дата 9.8.2004, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб




Олег, я совершенно не понимаю личных наездов в обсуждении в общем-то небезинтересной темы.
Я предложил считать время тиками - неужели на асме сложно это реализовать?

-0xffffffff - это ненормальный DWORD, для справки. Нормальные DWORD я и сортировал в первой версии, а вы - WORD (хотя и предлагали обратное). Тем способом, который реализовали вы - сортировать массив DWORD невозможно.

Хорошо, забьем, я тоже реализовал сортировку WORD, она естественно на порядок быстрее. Жду результатов сравнения - у меня нет медленной машины и возможности скормить вашей программе большую выборку для теста.


--------------------
PM MAIL WWW   Вверх
oleg1973
Дата 9.8.2004, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy




AndyY
Цитата
-0xffffffff - это ненормальный DWORD, для справки

интересно а чтоже это?smile.gif
Цитата
Тем способом, который реализовали вы - сортировать массив DWORD невозможно.

ошибаетесь уважаемый

AndyY
разговор заходит в тупик
если ты хочеш продолжить, велком сюда
http://forum.vingrad.ru/index.php?showtopic=27525&st=0
тут и скорость и извилины нужны



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
AndyY
Дата 9.8.2004, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб




oleg1973
нормальный dword - от 0 до 0xffffffff, или один разряд отдается на знак.

про использования алгоритма - покажите, как вы будете размещать массив размером 4 гига, или не выдавайте голословных утверждений.

разговор закончится, когда вы сделаете нормальное измерение времени в вашей программе, либо увеличите объем выборки в десяток раз, либо запостите сюда результат сравнения быстродействия наших программ на медленном компе.

кстати, у меня есть подозрение что с++ реализация обгоняет вашу "сделанную за полчаса". У меня быстродействие для word поднялось в 10 раз, а вы говорили всего о 8кратном преимуществе. к сожалению проверить вашу программу на своем компе я не могу.

Это сообщение отредактировал(а) AndyY - 9.8.2004, 23:44


--------------------
PM MAIL WWW   Вверх
oleg1973
Дата 10.8.2004, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy




AndyY
хорошо шас напишем
и вовсе не нада 4гб на массив smile.gif

а dword это 4 байта по любому и CPU на знак как то наплевать, несуществует для него отр. значений

ну а насчет измерения времени ты не прав,меряется одинаково как твоим так и моим способом


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
-=::BlackCat::=-
Дата 10.8.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 12.7.2003
Где: растёт анаша?




AndyY
u tebja tam w proge mona uwelichit kolichestwo geniracii? da eshe gelatelno chtonibud po slognee, a ne to doli sekundi ne interesno, nado bi chto nibud chto na 10-15 sekund, da i chtob proc pri etom polnostju naprjagli biggrin.gif


--------------------
-=::BlackCat::=-user posted image

такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать??  гррр, админ, форум косячит  
PM MAIL ICQ   Вверх
AndyY
Дата 10.8.2004, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.5.2004
Где: СПб




oleg1973
дык нет ничего легче запостить текущие результаты - алгоритм у нас сейчас один и тот-же.
вот и сравним в чистом виде скорости с++ и асм. и положим конец флейму о ручной оптимизации.

Измерение времени:

вот такой код
Код

SYSTEMTIME systime, systime1;

for( int n = 0; n < 10; n++ )
{
 ::GetSystemTime( &systime );
 for(;; )
 {
  ::GetSystemTime( &systime1 );
  if( systime1.wMilliseconds!= systime.wMilliseconds )
   break;
 }
 char sz[20];
 wsprintf( sz, "time diff: %d\n", systime1.wMilliseconds - systime.wMilliseconds );
 OutputDebugString( sz );
}


Угадаем, что будет в output? Думаете разница в 1mc? неправильно:
Код

time diff: 16
time diff: 16
time diff: 15
time diff: 16
time diff: 15
time diff: 16
time diff: 16
time diff: 15
time diff: 16
time diff: 16


на моем компе моя сортировка выполняется 4 мс, ваша пишет что 0 (читай, меньше 15).
нет ведь ничего проще использовать это:

Код

::QueryPerformanceFrequency( &freq );
::QueryPerformanceCounter( &ticks_before );

pfunc( pdata, count );

::QueryPerformanceCounter( &ticks_after );

{
 unsigned ticks = unsigned(ticks_after.QuadPart-ticks_before.QuadPart);
 freq.QuadPart /= 1000;
 unsigned time = unsigned(ticks/freq.QuadPart);
 char sz[100];
 sprintf( sz, "Sorting time: %d (%d msec)", ticks, time );
 ::MessageBox( 0, sz, "time", MB_OK );
}

и получим результат, на 99% близкий к истине (утилизация проца в районе 99%)

Добавлено @ 15:31
-=::BlackCat::=-
можно конечно. только функция олега ест only 500000 значений и не значением больше.
у меня ест все. пробовать так:
sorttest /random 1000000
Добавлено @ 15:33
-=::BlackCat::=-
можно конечно. только функция олега ест only 500000 значений и не значением больше.
у меня ест все. пробовать так:
sorttest /random 1000000


--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.1179 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.