![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy |
и так
AndyY предложил устроить компитейщн "написание алгоритма сортировки" и выяснить наконецто давно всех мучающий вопрос "а будет ли на асме оно быстрее работать?" Андрей я принимаю предложение что и как будем сортировать? чем будем подсчитывать циклы? (вопрос важный, разные утили по разному себя ведут) как вы наверно догадалисть я буду писать на асме, а AndyY на с/с++ ну если еше желающие будут, велком как говорится -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
_Chingachguk_ |
|
|||
Unregistered |
А где можно прочесть про условия Вашего спора ?
PS AndyY может просто позвать библиотечную QuickSort ![]() |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy |
_Chingachguk_
да условий никаких особых а все началось тут http://forum.vingrad.ru/index.php?showtopi...ad=#entry191272 -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen |
Сортировка это просто... Лучше пусть каждый сделает контейнер/множество принимающий строки и выдающий их в специальном отсортированном виде.
Что бы было понятно, SQL запрос: select distinct * from.... order by поле,поле,поле; И того в контейнер будут поступать структуры: {int, строка, строка, строка}, а выдавать контейнер будет множество этих структур, отсортированных по полям заданным в аргументах. Приниматся будут 10.000 структур, из которых 500 уникальных. В задаче присутствует как сортировка и поиск, так и возможность хорошенько подумать над задачей ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург |
А давайте.
Сортировка предлагается следующая: Сортировка методом "Быстрая сортировка" строки длиной по 50 символов. На вход функции подается указатель на массив из строк. А мы посмотрим ![]() |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US |
Тогда уж заодно и на шарпе
![]() Вот будет весело если он победит ![]() --------------------
|
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy |
согласен призы какие? ![]() чем скорость замерять будем? -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург |
Запускаем функцию и меряем время до и после. Массив можно большой - миллион строк, чтобы было что замерить. В принципе компутер не важен - можно получить относительные величины. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy |
и на это время вырубим вындос? и все приложения? rdtsc оно не только тики одного процесса будет считать тогда уж грузится с дискетки в реал моде досе вырубать прерывания и тестить -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Guest |
|
|||
Unregistered |
Да ну, одна задача с достаточно большим числом аргументов и время будет более-менее ok. Я тут недавно изучал стойкость md5 и сортировал по ~2^25 строк ;) |
|||
|
||||
_Chingachguk_ |
|
|||
Unregistered |
Черт, подписаться забыл ;)
PS АСМ победит. |
|||
|
||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб |
oleg1973
Предупреждать же надо. Еле топик нашел. Вот и значения для сортировки. Читать будем из файла values.dat (в зипе тут). Если 10000 мало для теста производительности, нагенерю еще. Сравнивать будем разницу тиков проца до и после сортировки. Проверим скажем на intel и amd, хотя думаю что разница будет незначительно. Добавлено @ 15:02 во наспамили ![]() поскольку речь идет о программировании под винду, считаю всякие дос моды излишеством. Пускаться должно как отдельный win32 процесс, комп особо ничем занят быть не должен. Считаем только тики сортировки, время чтения файла - пофигу. Повторюсь - я утверждаю, что у асма не будет особых преимуществ по быстродействию в сравнении с release оптимизированным по скорости msvc. Добавлено @ 15:04 AntonSaburov Я вообще-то сгенерил файло для сортировки чисел, но пофигу - можно и строки сортировать. Возможно Олегу даже проще будет - не надо atoi писать ![]() |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 |
10000 маловато будет. в линухе sort выдает 0.12 секунд (загрузка проца 61%) на атлоне не хилом.
разрешите поучаствовать ? представителем Си под Линукс ? Это сообщение отредактировал(а) GrayCardinal - 29.7.2004, 15:33 |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев |
насколько я понял, никто и не спорит, что ассемблер будет быстрее говорят, что он будет ненамного быстрее... здесь как-то очень быстро, без всякого анализа был сделан выбор алгоритма, а, между прочим, от этого все и зависит одно дело - алгоритм с кучей организационных инструкций, всякие там if, while и т.д., и т.п. совсем другое - серьезный вычислительный алгоритм с кучей умножений, сложений ... последние алгоритмы, обычно, очень хорошо ложатся на ассемблер при чем, при увеличении сложности алгоритма эффективность кода, сгенерированного компилятором C++, по сравнению с написанным вручную (только грамотно, конечно) будет падать P.S. было бы интересно так же узнать время написания ПО ![]() -------------------- qqq |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy |
10000 мало
давай ченить окола 100000 и числа посерезней ![]() типа
Добавлено @ 16:05 кому файло? 100000 элементов 430 кб в архиве -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
![]() ![]() ![]() |
Правила раздела «Флейм» | |
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Флейм | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |