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

Поиск:

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


asm fanat
****


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




и так
AndyY
предложил устроить компитейщн
"написание алгоритма сортировки"
и выяснить наконецто давно всех мучающий вопрос "а будет ли на асме оно быстрее работать?"
Андрей я принимаю предложение
что и как будем сортировать?
чем будем подсчитывать циклы? (вопрос важный, разные утили по разному себя ведут)

как вы наверно догадалисть я буду писать на асме, а AndyY на с/с++
ну если еше желающие будут, велком как говорится


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
_Chingachguk_
Дата 29.7.2004, 13:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А где можно прочесть про условия Вашего спора ?

PS AndyY может просто позвать библиотечную QuickSort smile.gif
  Вверх
oleg1973
Дата 29.7.2004, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




_Chingachguk_
да условий никаких особых
а все началось тут
http://forum.vingrad.ru/index.php?showtopi...ad=#entry191272


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


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen




Сортировка это просто... Лучше пусть каждый сделает контейнер/множество принимающий строки и выдающий их в специальном отсортированном виде.
Что бы было понятно, SQL запрос: select distinct * from.... order by поле,поле,поле;
И того в контейнер будут поступать структуры: {int, строка, строка, строка}, а выдавать контейнер будет множество этих структур, отсортированных по полям заданным в аргументах.
Приниматся будут 10.000 структур, из которых 500 уникальных.

В задаче присутствует как сортировка и поиск, так и возможность хорошенько подумать над задачей smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
AntonSaburov
Дата 29.7.2004, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург




А давайте.
Сортировка предлагается следующая:
Сортировка методом "Быстрая сортировка" строки длиной по 50 символов.
На вход функции подается указатель на массив из строк.

А мы посмотрим smile.gif
PM MAIL WWW ICQ   Вверх
chipset
Дата 29.7.2004, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US




Тогда уж заодно и на шарпе smile.gif
Вот будет весело если он победит biggrin.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
oleg1973
Дата 29.7.2004, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




Цитата
А давайте.
Сортировка предлагается следующая:
Сортировка методом "Быстрая сортировка" строки длиной по 50 символов.
На вход функции подается указатель на массив из строк.

согласен
призы какие? smile.gif
чем скорость замерять будем?


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


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург




Цитата
чем скорость замерять будем?

Запускаем функцию и меряем время до и после. Массив можно большой - миллион строк, чтобы было что замерить. В принципе компутер не важен - можно получить относительные величины.
PM MAIL WWW ICQ   Вверх
oleg1973
Дата 29.7.2004, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




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

и на это время вырубим вындос? и все приложения?
rdtsc
оно не только тики одного процесса будет считать

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


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Guest
Дата 29.7.2004, 14:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата

и на это время вырубим вындос? и все приложения?


Да ну, одна задача с достаточно большим числом аргументов и время будет более-менее ok.

Я тут недавно изучал стойкость md5 и сортировал по ~2^25 строк ;)
  Вверх
_Chingachguk_
Дата 29.7.2004, 14:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Черт, подписаться забыл ;)

PS АСМ победит.
  Вверх
AndyY
Дата 29.7.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




oleg1973
Предупреждать же надо. Еле топик нашел.
Вот и значения для сортировки. Читать будем из файла values.dat (в зипе тут).
Если 10000 мало для теста производительности, нагенерю еще.

Сравнивать будем разницу тиков проца до и после сортировки. Проверим скажем на intel и amd, хотя думаю что разница будет незначительно.
Добавлено @ 15:02
во наспамилиsmile.gif
поскольку речь идет о программировании под винду, считаю всякие дос моды излишеством. Пускаться должно как отдельный win32 процесс, комп особо ничем занят быть не должен. Считаем только тики сортировки, время чтения файла - пофигу.

Повторюсь - я утверждаю, что у асма не будет особых преимуществ по быстродействию в сравнении с release оптимизированным по скорости msvc.

Добавлено @ 15:04
AntonSaburov
Я вообще-то сгенерил файло для сортировки чисел, но пофигу - можно и строки сортировать. Возможно Олегу даже проще будет - не надо atoi писатьsmile.gif)). Тогда предлагайте свою выборку.


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


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003




10000 маловато будет. в линухе sort выдает 0.12 секунд (загрузка проца 61%) на атлоне не хилом.
разрешите поучаствовать ? представителем Си под Линукс ?


Это сообщение отредактировал(а) GrayCardinal - 29.7.2004, 15:33


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


Эксперт
****


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




Цитата
PS АСМ победит.

насколько я понял, никто и не спорит, что ассемблер будет быстрее
говорят, что он будет ненамного быстрее...
здесь как-то очень быстро, без всякого анализа был сделан выбор алгоритма, а, между прочим, от этого все и зависит
одно дело - алгоритм с кучей организационных инструкций, всякие там if, while и т.д., и т.п.
совсем другое - серьезный вычислительный алгоритм с кучей умножений, сложений ...
последние алгоритмы, обычно, очень хорошо ложатся на ассемблер
при чем, при увеличении сложности алгоритма эффективность кода, сгенерированного компилятором C++, по сравнению с написанным вручную (только грамотно, конечно) будет падать
P.S.
было бы интересно так же узнать время написания ПО smile.gif


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


asm fanat
****


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




10000 мало
давай ченить окола 100000
и числа посерезней smile.gif
типа
Код
1396295059,1283048851,1027261331,770327955,514409875,257573523,443283,256492910,514475374,771048814,1027980398,1284949358,1541815406,1799011694,2054503790,1984314770,1726659986,1469758866,1213646226,956974482,699745682,442908050,185255314,71679343,328645231,585712495,842414959,1099610735,1356448879,1611316335,1868217455,2125872239,1912225169,1656339345,1399243665,1142277521,885376145,627459473,370850961,113917329,153500784,400114288,657079664,913980272

Добавлено @ 16:05
кому файло?
100000 элементов
430 кб в архиве


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


Брутальный буратина
****


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




Господа, а почему сортировка?
Может лутче на поиск слова в файлах по маске *.* ?
PM   Вверх
Girder
Дата 29.7.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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




maxim1000 ты прав - задача явно не та. Лудше бы определитель матрицы, размерность так 9х9, посчитали через рекурсию.
При этом размерность каждой ячейки: Word, а ответ рекурсивной функции DWord(или там PWord, QWord, TByte). - лудше конечно PWord(6 байт) или TByte(10 байт).
Разница в размерности выбранно специально.

Вот тогда и проявится: насколько грамотно работает компилятор.

Это сообщение отредактировал(а) Girder - 29.7.2004, 16:24


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Monty
Дата 29.7.2004, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


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




Цитата(RAdmin @ 29.7.2004, 15:15)
Господа, а почему сортировка?
Может лутче на поиск слова в файлах по маске *.* ?

Это уже от диска будет зависить smile.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Sardar
Дата 29.7.2004, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen




Загрузка с дискетки и прочие инкубаторские условия не допустимы, ИМXО.
Если сортировать, то не числа, а строки по алфавиту в любом направлении.
Нет ничего хуже супер результатов надуманных задач, ИМXО.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
RA
Дата 29.7.2004, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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




Цитата(Monty @ 29.7.2004, 16:39)
Цитата(RAdmin @ 29.7.2004, 15:15)
Господа, а почему сортировка?
Может лутче на поиск слова в файлах по маске *.* ?

Это уже от диска будет зависить smile.gif

Ну дык протестим всё это на твоём диске
PM   Вверх
Fantasist
Дата 29.7.2004, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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




От компилятора тоже будет зависить. Где-то на RSDN видел статью - там компилятор от Intel при работе с float значениями уделал всех остальных в десятки раз.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
-=::BlackCat::=-
Дата 29.7.2004, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Могу предоставить своиь комп для тестирования.... самому очень интересна скорость, мой комп описан здесь.
http://forum.vingrad.ru/index.php?showtopi...ndpost&p=145831
smile.gif


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

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


Advanced Lamer
****


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




Цитата(RAdmin @ 29.7.2004, 17:50)
Цитата(Monty @ 29.7.2004, 16:39)
Цитата(RAdmin @ 29.7.2004, )
Господа, а почему сортировка?
Может лутче на поиск слова в файлах по маске *.* ?

Это уже от диска будет зависить smile.gif

Ну дык протестим всё это на твоём диске

Радмин, ты не понял smile.gif ... все будут юзать стандартные Апи smile.gif ... нет быть написать алгоритм, а не юзальщик Апи ... и у всех будет одинаковая скорость smile.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Дрон
Дата 30.7.2004, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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




Может вам будет интересно, но помнится я сам проводил подобное сравнение. Взял алгоритм возведения чисел в целую степень и давай баловаться.
Простая (сделанная прямо по алгоритму) реализация на Си проигрывала в ВОСЕМЬ раз такой же на ассемблере. Потом я подумал-подумал и по-всякому ухитряясь переписал на Си так, что получилось всего лишь в 1,3 (примерно, сейчас я уже не помню) раза медленнее ассемблера. Может, конечно, можно ещё где-то улучшить.
Процедуру на асме можете глянуть тут: http://forum.vingrad.ru/index.php?showtopic=21898

А на Си вот тут:
Цитата
float pow(float a,short k){
  if(k==0) return 1.0;
  float b=1.0;
  float A=a;

  if(k<0) {
    a=1/a;
    k=-k;
  }

  if(k&1) b=A;

  k>>=1;
  while(k!=0){
    A*=A;
    if(k&1) b*=A;
    k>>=1;
  }

  return b;
}


Это сообщение отредактировал(а) Дрон - 30.7.2004, 01:45


--------------------
Да. Именно так.
PM   Вверх
oleg1973
Дата 30.7.2004, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




Цитата
Если сортировать, то не числа, а строки по алфавиту в любом направлении.

тоже идея

ну так и будем все трепатся или выдумаем задание?
я предлогаю
массив на 100000 элементов разделенных там чемнить , запятой к примеру
элементы разной размерности (byte word dword )
задача сортануть по возрастащей к примеру
алгоритм кому какой больше по душе, язык програмирвания тоже
нужно сделать dll с одной единственной функ которой передастся адрес массива
и его размер
длл должна сделать сортировку и вернуть адрес на отсортированый массив
который основная прога в файл сохранит

при данном размере массива можно будет секундомером засикать smile.gif
я такой массив в ворд засунул, замену символа задал
на П4-2000 +512 рам достаточно долго работал



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


Java-ненавистник :)
****


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




Лучше всего засекать время по GetProcessTimes()

Это сообщение отредактировал(а) Дрон - 30.7.2004, 02:22


--------------------
Да. Именно так.
PM   Вверх
maxim1000
Дата 30.7.2004, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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




Цитата
алгоритм кому какой больше по душе

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


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


Опытный
**


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




maxim1000
Сравниваем возможности программиста, естественно. При использовании различных языков программирования. Кто какой алгоритм знает - тот такой и реализует.

oleg1973
сегодня напишу если ничего срочного не будет.
в dll - ок. Я так и не понял, строки сортируем или числа "разной размерности".
Файл в формате - числа, разделенные '\n'.

итак, точка входа - такая:
Код

extern 'C'
__declspec( __dllexport )
unsigned *sort( unsigned *p, unsigned count );


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

Sardar Girder и другие:
Мы писать будем сортировку. Если есть желание сравнивать что-нибудь другое - никаких проблем, пишите, сравнивайте.


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


Лентяй 2
***


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




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

Но честно признаюсь, при правельном подходе, компилятор(любой) всегда проиграет.

Удачи Вам обоим(AndyY и oleg1973).


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
p0s0l
Дата 30.7.2004, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.




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

Или почему бы не сравнить задачи, где можно юзать MMX или SSE ?
Как там себя будет чувствовать ЯВУ ?...

PS: IMHO, лучше засекать время через QueryPerformanceCounter...



--------------------
С уважением, г-н Посол.
PM   Вверх
Sardar
Дата 30.7.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen




AndyY тоже не хотел обидеть, просто большая сила С++ проявится в работе с большими/сложными структурами, куча в памяти(звязанные списки и т.п.) и сложная логика/отношения. В простой сортировке 32битных чисел Олег тебя уделает...



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
oleg1973
Дата 31.7.2004, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




AndyY
ты файл выложи для сортировки
Цитата
Я так и не понял, строки сортируем или числа "разной размерности"

есть массив "5,45687,-25,589,6,45369712698,"
ну и надо по возрастающей числа расставить

Цитата
Просто может получится так, что Олег сделает пузырьковый метод

придумал я тут на досуге алгоритм smile.gif
использует особенности hex представления числа, smile.gif оригинальность и секорость гарантированы smile.gif

p.s.
ну так че "быструю сортировку" пишем ?

Это сообщение отредактировал(а) oleg1973 - 31.7.2004, 13:51


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


Опытный
**


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




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

встречайте и тестите:
sortlib.zip - бинарник
sortsrc.zip - сорец.

сама сортировка, как договаривались, в .dll.

о командной строке:
sorttest.exe /random <необязательное число> - нагенерячить выборку, по умолчанию 500000 значений. выборка - белый шум.
sorttest.exe /normal <необязательное число> - аналогично, но приближена к нормальному распределению.

жду ответа от олега.

PS сортировка поддерживает отрицательные числа, но не генерячит их. Ибо лень.


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


Опытный
**


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




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


--------------------
PM MAIL WWW   Вверх
-=::BlackCat::=-
Дата 3.8.2004, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




AndyY
wi tut pisali chto eto dolvolnataki gestokie nagruzki na komp budut, nu ja predlogil swoi dlja experementow, no poka chto ne prog ne faila sortirowki ne widno.


PS: andy wigu silki na twoju progu.... gdems progu ot olega plus, dawaite libo eshe genirotor dopishite libo failik daite, ne w rcuhnuju ge nam eto delo nabiwat =)


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

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


Java-ненавистник :)
****


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




[Offtop]
-=::BlackCat::=-
Включи транслит!!!!!!!!
А то вообще не понять о чём ты говоришь sad.gif sad.gif sad.gif
[/Offtop]
Спасибо за внимание.


--------------------
Да. Именно так.
PM   Вверх
-=::BlackCat::=-
Дата 3.8.2004, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Дрон
ego u menja netu sad.gif sad.gif sad.gif sad.gif sad.gif admin wirezal, k nemu pritenzii mad.gif


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

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


Лентяй 2
***


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




Топик тонет, Мож с нами со всеми поделитесь результатами, а?

Это сообщение отредактировал(а) Girder - 5.8.2004, 13:02


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
oleg1973
Дата 6.8.2004, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




а вот и я, пардон за задержку дела были
кароче прога AndyY делает все за 80 мс (у меня п4-2000 512 рам XP)
мой вариант делает за 10 мс (тоже без оптимизации biggrin.gif biggrin.gif biggrin.gif )
вывод как говорится на лицо
для теста вам понадбится values.dat из набора AndyY

саму прогу брать тут
файл


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


Опытный
**


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




Забавно.

1. нагенерил значения:
sorttest.exe /random 10000000 - получилось в районе 60 мегов
2. запускаю сортировку oleg1973
3. она сортирует 0 (!) ms и записывает файл файл 3 мегаsmile.gif)))

мой вариант сортирует примерно секунду (размер, естественно, совпадает).

так что там с поддержкой?

кстати, не понимаю, почему dll экспортит кривую точку входа - моя прога ее не кушает, а разрешению GetLocalTime я не доверяю, как и GetTickCount()


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


asm fanat
****


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




AndyY
Цитата

1. нагенерил значения:
sorttest.exe /random 10000000 - получилось в районе 60 мегов
2. запускаю сортировку oleg1973
3. она сортирует 0 (!) ms и записывает файл файл 3 мега)))

так как я тестил с values.dat 500000 значений оно с ними и работает
а меньше 10 мс не отследиш

Цитата
кстати, не понимаю, почему dll экспортит кривую точку входа - моя прога ее не кушает, а разрешению GetLocalTime я не доверяю, как и GetTickCount()

твоя прога все кушает
но не пишет результаты моей длл в файл а вылитает
видимо при компиляции и оптимизации прэкта ты чета намутил там и возврат данных в твоей длл происходит не через EAX как положено по конвенции
моя же длл возвращает указатель на отсортированый массив именно через EAX


з.ы.
проверил с 10000000
260 мс

Это сообщение отредактировал(а) oleg1973 - 6.8.2004, 13:21


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


Лентяй 2
***


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




Да... как я и ожидал. Не та задачка для сравнения.

Мож еще какую задачку замутите, для сравнения


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
oleg1973
Дата 6.8.2004, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




Girder
это бесполезно
если взять асм листинг проги AndyY
то увидим конструкции типа
mov ecx, DWORD PTR [eax+edx*4]
и
cmp eax, DWORD PTR _threshold$[ebp]

а это есть тормоза
Добавлено @ 13:34
для тех кто хочет померятся письками
предлогаю реальный конкурс, где проявится не только умение компилятора но и програмера biggrin.gif
будем писать упаковщик данных, картинку у примеру возмем 1024х768х24 bit
ну и будем ее паковать smile.gif
желательно переплюнуть Rar по размерам выходного файла и по времени



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


Лентяй 2
***


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




Да это понятно.

Согласен на все 100%, что код написанный(так скажем правильно) на асме всегда объиграет компилятор.

Но есть задачи. которые в откомпилированнов виде(всмысле только оснавная функция),несмотря на чуть больший размер по сравнению с кодом написанном полностью на асме, может быть более производителен, если конечно человек пишуший на асме не обратит внимание на некоторые нюансы. Ну типо что проц тратит дополнительное время на переход от выполнения 32битной инструкции к примеру к 16 битной ну и наоборот. При этом в компиляторе это как правило учтено. Чуть больше переходов при реализации на асме, а компилятор, сам понимаеш старается их минимизировать. Ну даже в этом разница Call $4f1243 или Call edi. Ну и т.д.

Я надеюсь что ты понял меня oleg1973



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
oleg1973
Дата 6.8.2004, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




Girder
не нада смешивать 32 и 16 бит и все будет ок biggrin.gif biggrin.gif biggrin.gif


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


Лентяй 2
***


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




Ясно дело!. Это я так для примера. Иногда по быстроте напишеш смешанный код, ну а потом его приходится оптимизировать. Вот я и надеялся что по спешки ты можеш ошибится.

И увидеш что плохой(не подумай что это я на твой счет) програмист пишуший на асме реализует хуже задачу, чем программист пишуший на языке высокого уровня

Это сообщение отредактировал(а) Girder - 6.8.2004, 14:11


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
GrayCardinal
Дата 6.8.2004, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003




от нечего делать замутил прогу сорта этих чисел... на си под Линукс и простую, пузырьковую... получилосьв районе 110мс (500 тыщ значений). Атлон 1.8



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


asm fanat
****


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




я не смотрел особо исходник Анди
но факт в том что его sorttest.ехе передает а качастве параметра указатель на массив 16 битных значений, я естестно их в 32 перевожу, как у него сортировка идет я не знаю, тормоза еше и изза этого точно есть


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


Опытный
**


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




oleg1973
не понял такого:
qsort:
mov esi,[adr]
mov ecx,500000

не удивительно что сортируется не то что надоsmile.gif))
к вопросу о поддержке асм программsmile.gif)


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


Лентяй 2
***


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




oleg1973 понял.
AndyY проверь настройки компилятора и код.


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
oleg1973
Дата 6.8.2004, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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




AndyY
яж те сказал
на 500000 сделана либа
лень было
хотя могу и пофиксить

но это как то мало к делу относится


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


Опытный
**


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




кстати если поставить первое число -100 - тоже gpf


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


asm fanat
****


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




AndyY
и че ты хочеш от проги за 30 мин написаной?
ты лучше не баги у меня ищи а алгоритм свой шливуй и оптимизируй biggrin.gif



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


Опытный
**


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




Girder
не понял что мне проверять.
я написал работающую прогу.
олег - нет (ему было лень)
о чем дальше может идти разговор? сравнивать нечего.


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


Лентяй 2
***


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




Цитата
к вопросу о поддержке асм программ
Ясно дело что енто сложнее. Но если сравнивать с С, то некоторые так пишут что и там потдержка будет очень затруднительна


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
GrayCardinal
Дата 6.8.2004, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003




Упс... hehe.gif
Ошибочка вышла... Не сортила у меня ничерта (забыл проверить biggrin.gif )... пузырьковая здесь не катит... hehe.gif
[quote]будем писать упаковщик данных, картинку у примеру возмем 1024х768х24 bit ну и будем ее паковать[quote]
формат картинок ? простой pixmap по три байта на пиксель или по четыре (навроде BMP-шки где лишний ноль) ? Кто картинок нагенерит ?


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


Лентяй 2
***


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




GrayCardinal выбирай http://wallpapers.bynet.ru/index.shtml



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
GrayCardinal
Дата 6.8.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003




Так что - пишем архиватор BMPшки типа 1024*768*24 с оптимизацией по скорости ? Ограничением на вирт. память 256 мб biggrin.gif ?


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


asm fanat
****


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




Анди ты можеш говорить все что тебе угодно
факты вот
ради интереса протестил на п2-350 384 рам вын98
500000 элементов
user posted image

Добавлено @ 15:48
GrayCardinal
давай
1024*768*24 бита (RGB)
и по скорости и по размеру выходного файла
создай тока топик новый


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


Опытный
**


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




oleg1973
написать программу которая выводит сообщение sort time 110ms - конечно, несложно. Сложность в том, чтобы программа при этом еще и работала. На этом обсуждать тему лично с вами мне стало неинтересно.

all
Хотелось бы увидеть работающую реализацию сортировки. Может, кто справится на асме? Или на C#?


--------------------
PM MAIL WWW   Вверх
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

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


 




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


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

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