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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> asm vs C/C++, скорострельность 
:(
    Опции темы
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   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

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

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

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

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

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

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


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


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


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

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


 




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


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

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