The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

asmttpd - http-сервер на ассемблере[BR], opennews (??), 20-Май-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


24. "asmttpd - http-сервер на ассемблере"  +3 +/
Сообщение от Аноним (-), 20-Май-15, 13:23 
> Хорошо написанный код на СИ в общем случае не улучшишь с помощью ассемблера.

То-то все кодеки, либы шифрования, turbojpeg и прочие - вставки на асме пишут для ускорения.

Потому что как там сгенерит код сишный компилер - бабушка надвое сказала. И когда он вывалит какое-то жуткое месиво в тугом цикле, "потому что кодогенератор так решил" - знаешь, кодек с асмовыми вставками, где этот цикл вылизан покомандно живым человеком - может оказаться в 2-3 раза быстрее. Просто потому что в тугом цикле - в 2 раза меньше команд. Человек то в отличие от компилера может и подраспереться в одной локальной местности, оптимизнув по максимуму. Но писать мег кода на асме - бесполезно :). Можно запросто продуть компилятору в оптимизации использования регистров и проч.

Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

27. "asmttpd - http-сервер на ассемблере"  +2 +/
Сообщение от михаил (?), 20-Май-15, 13:27 
http://www.opennet.me/opennews/art.shtml?num=36551
Ответить | Правка | Наверх | Cообщить модератору

29. "asmttpd - http-сервер на ассемблере"  –2 +/
Сообщение от михаил (?), 20-Май-15, 13:27 
> http://www.opennet.me/opennews/art.shtml?num=36551

Большая часть ассемблерных вставок малозначительна и не создаёт должного увеличения производительности. Часто разработчики пытаются использовать тривиальный код с надеждой увеличить скорость выполнения тех или иных действий, но при этом общий эффект подавляется другими узкими местами.

Ответить | Правка | Наверх | Cообщить модератору

83. "asmttpd - http-сервер на ассемблере"  +/
Сообщение от Аноним (-), 20-Май-15, 20:43 
>  Большая часть ассемблерных вставок малозначительна

Это тот случай когда "мал золотник, да дорог". Нет смысла ускорять код в который ничего особо и не упиралось, поэтому переписать всю ОС или программу на асм как колибри или менуэт - довольно глупо.

А вот самые горячие циклы - на асме получаются быстрее, и это определяет всю производительность программы в местах где это критично. Что важно для кодеков, криптографии и прочая.

> и не создаёт должного увеличения производительности.

А я вот мерял как-то чисто сишные версии vs C+asm вставки в случае кодека - разница была очень даже. И я бы не хотел пользоваться чисто сишной версией кодека при доступности asm-optimized, разница может быть в пару раз запросто. А это меньше шума от вентиля на мощном проце, а на слабом - больше разрешение которое прожуется без выпадения кадров.

> другими узкими местами.

Вот в кодеках например асмовые вставки сделаны в самых горячих местах. Что и ускоряет все буквально в разы. Ну разумеется всякий glue code вызываемый сильно иногда - никто в здравом уме на асме писать не будет, потому что эффекта около ноля, а возни много.

Ответить | Правка | Наверх | Cообщить модератору

37. "asmttpd - http-сервер на ассемблере"  +2 +/
Сообщение от Andrey Mitrofanov (?), 20-Май-15, 13:49 
> То-то все кодеки, либы шифрования, turbojpeg и прочие - вставки на асме
> пишут для ускорения.

Как видим, весь код на асме пишут для замедления.

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

56. "asmttpd - http-сервер на ассемблере"  –2 +/
Сообщение от ram_scan (?), 20-Май-15, 15:24 
> Как видим, весь код на асме пишут для замедления.

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

Если его на сях переписать будет еще тупее по производительности.


Ответить | Правка | Наверх | Cообщить модератору

88. "asmttpd - http-сервер на ассемблере"  +1 +/
Сообщение от Andrey Mitrofanov (?), 20-Май-15, 20:50 
>> Как видим, весь код на асме пишут для замедления.
>что они - тормозная блоатварь.

Про блоат это ты принёс. Беспокоит размер? Сравнивал 10DVD любой из 10 архитектур Debian-а со своими ассемберными пипирками и аж задохнулся?? Твои страдания >>>-все-видят->

> Сотни батхерта обеспечены :)

Ответить | Правка | Наверх | Cообщить модератору

94. "asmttpd - http-сервер на ассемблере"  –2 +/
Сообщение от Аноним (-), 20-Май-15, 21:02 
> Про блоат это ты принёс.

Я всего лишь придумал как оптимизировать наброс. Троллить ассемблерщиков неоптимальными набросами - не пройдет. Они во всем оптимизацию любят.

Ответить | Правка | Наверх | Cообщить модератору

50. "asmttpd - http-сервер на ассемблере"  +/
Сообщение от iPony (?), 20-Май-15, 14:39 
Да, так я и написал "в общем случае".
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

78. "asmttpd - http-сервер на ассемблере"  +/
Сообщение от Омномним (?), 20-Май-15, 18:31 
Кодеки, шифрование, обработка изображений - это "числодробилки". Ассемблерные вставки там - это чёрные ящики, получающие буфер с данными на входе и выдающие буфер на выходе, это функции-аутисты, проделывающие большой объем вычислений, никак не общаясь с окружением.
А что такое http-сервер? Это жонглирование буферами памяти между вызовами API-шных функций работы с сетью и диском. Ну, парсер строк заголовков еще можно написать на асме, если уж руки чешутся. Но весь червер на асме это чистое рукоблудие.
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

86. "asmttpd - http-сервер на ассемблере"  +/
Сообщение от Аноним (-), 20-Май-15, 20:48 
Ух ты, я вызвал приступы капитанинга. Любо-дорого смотреть, Капитаны на опеннете сегодня качественные :)
Ответить | Правка | Наверх | Cообщить модератору

108. "asmttpd - http-сервер на ассемблере"  –3 +/
Сообщение от bircoph (ok), 21-Май-15, 04:59 
>[оверквотинг удален]
> пишут для ускорения.
> Потому что как там сгенерит код сишный компилер - бабушка надвое сказала.
> И когда он вывалит какое-то жуткое месиво в тугом цикле, "потому
> что кодогенератор так решил" - знаешь, кодек с асмовыми вставками, где
> этот цикл вылизан покомандно живым человеком - может оказаться в 2-3
> раза быстрее. Просто потому что в тугом цикле - в 2
> раза меньше команд. Человек то в отличие от компилера может и
> подраспереться в одной локальной местности, оптимизнув по максимуму. Но писать мег
> кода на асме - бесполезно :). Можно запросто продуть компилятору в
> оптимизации использования регистров и проч.

С использованием векторных инструкций не в 2-3 раза, а в 20-30 раз (для конкретного цикла или небольшого куска кода), что в целом даёт 2-5 раз уже для всей программы.

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру