The OpenNET Project / Index page

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



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

Оглавление

Сравнение эффективности 20 языков программирования, opennews (??), 03-Янв-24, (0) [смотреть все]

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


37. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Анонус (?), 03-Янв-24, 11:57 
Было бы здорово увидеть решение на asm для эталона.
Ответить | Правка | Наверх | Cообщить модератору

42. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Тот_ещё_аноним (ok), 03-Янв-24, 12:03 
Разница с Си будет доли %
Ответить | Правка | Наверх | Cообщить модератору

46. "Сравнение эффективности 20 языков программирования"  –3 +/
Сообщение от Аноним (46), 03-Янв-24, 12:05 
Не смеши мои тапки, Си от голого ассемблера отстаёт в десятки раз. Проверено ещё во времена msdos и 8086 процессора.
Ответить | Правка | Наверх | Cообщить модератору

69. "Сравнение эффективности 20 языков программирования"  +3 +/
Сообщение от Аноним (59), 03-Янв-24, 12:26 
Вспомнила бабка, как девкой была. Сейчас компилятор так наоптимизирует, что кожаный движок в жизни не догадался бы так написать. Да и тогда не было никаких десятков раз, конечно.
А тут ведь у нас про математику? Программирование 8087 на ассемблере — занятие для законченного мазохиста.
Ответить | Правка | Наверх | Cообщить модератору

80. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (4), 03-Янв-24, 12:34 
Оптимизации это хорошо (потому что компилятор в теории лучше знает об особенностях каждой архитектуры), но, в конечном счёте, без ручного ассемблера сегодня не обойтись.
Ответить | Правка | Наверх | Cообщить модератору

142. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (142), 03-Янв-24, 14:19 
Человек руками на mmx/sse так напишет, что никакому оптимизирующему компиллятору никогда не удастся. Много раз так делал.
Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

166. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (166), 03-Янв-24, 15:41 
Демосцена тому пример. Никакой си не сможет даже близко того, что делают парни на ассемблере. Причем ассемблер вопреки бытующему мнению на самом деле очень простой язык, может быть даже самый простой.
Ответить | Правка | Наверх | Cообщить модератору

175. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (59), 03-Янв-24, 16:20 
Трудоёмкость такого программирования такова, что в реальной жизни оно нигде не пригодится.
И на ассемблере пишутся в основном совсем уж маленьких демках. Тот же .kkrieger написан в основном на Си (и то авторы признавались, что ну его нафиг такой опыт).
Ассемблер — простой язык, да. Программировать только на нём сложно.
Ответить | Правка | Наверх | Cообщить модератору

292. "Сравнение эффективности 20 языков программирования"  –1 +/
Сообщение от Аноним (240), 04-Янв-24, 01:18 
Человек, ты вещаешь про х86 или может армы, а вот для Эльбрусов заявлено что переписывание на ассемблере многие программы ускорит в разы.
То что Си для виртуальногь PDP-11 запилили это не значит что так работают современные или более навороченные процессорные архитектуры.
Ответить | Правка | Наверх | Cообщить модератору

294. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (59), 04-Янв-24, 01:25 
> для Эльбрусов заявлено что переписывание на ассемблере многие программы ускорит в разы

А пруфец на заявление можно? Потому что это даже для x86 звучит фантастикой, а для VLIW! Ну или у них настолько убогий компилятор.

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

186. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (-), 03-Янв-24, 17:32 
А сколько ты будешь этот идеальный код писать?
Особенно проект уровня, ну хотя бы текстовый редактор?
Думаю речь пойдет о годах, если не больше.

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

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

211. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Ivan7 (ok), 03-Янв-24, 18:55 
Эффективнее всего делать ассемблерные вставки для C++, компилировать код С++, дизассемблировать и изучать дизассемблированные листинги, чтобы потом писать более эффективный код на С++ и ассемблере. Нужно грамотно сочетать С++ с ассемблером, используя преимущества обоих. Писать программы на голом ассемблере смысла нет, и даже вредно, а вот сочетать С++ и ассемблер - это действительно интересно и полезно.
Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

293. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (59), 04-Янв-24, 01:22 
Дизассемблированный код C++ — это страшная вещь.
Ответить | Правка | Наверх | Cообщить модератору

268. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (261), 03-Янв-24, 23:17 
суть демосцены не в оптимизации производительности, а размере исполняемого файла
Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

161. "Сравнение эффективности 20 языков программирования"  –1 +/
Сообщение от Аноним (166), 03-Янв-24, 15:38 
> Сейчас компилятор так наоптимизирует

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

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

173. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (59), 03-Янв-24, 16:10 
И только с хелловорлдом это и сработает. Килобайты — это оверхед для любой сишной программы. Но на всякий случай напомню, что страница памяти у нас — минимум 4 килобайта.
Ответить | Правка | Наверх | Cообщить модератору

263. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от an2 (?), 03-Янв-24, 22:28 
Но из-за того, сколько процессоров вышло с тех времён, даже что-то такое тривиальное как strlen() - это уже проблема, не говоря уже о чём-то большем.

https://stackoverflow.com/questions/57650895/why-does-glibcs...

Помимо основных библиотечных функций кодеки на асме вручную ещё оптимизируют.

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

265. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от an2 (?), 03-Янв-24, 22:31 
И тут ещё:
https://stackoverflow.com/questions/33480999/how-can-the-rep...
Ответить | Правка | Наверх | Cообщить модератору

278. "Сравнение эффективности 20 языков программирования"  +2 +/
Сообщение от _kp (ok), 04-Янв-24, 00:12 
   Помню как то писал на msp430, так там код на gcc генерировал значительно более компактный код, чем написанный на ассемблере. Вручную написанный код хороший, но настолько сильно с оптимизацией вручную не заморачиваются, кроме крайне критичных мест.
   Если же взять типичный большой исходник на ассемблере, то большая его часть обычно написана шаблонами и макросами, а чудеса оптимизации только в самых важных местах.
А код на компилируемых языках оптимизируется везде. И на обычном большом проекте ассемблер совсем не выигрывает, и тем более с разгромом.
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

326. "Сравнение эффективности 20 языков программирования"  –1 +/
Сообщение от Тот_ещё_аноним (ok), 04-Янв-24, 04:41 
Примерно в тех временах и осталось
Компиляторы уже другие, процессоры тоже
Для конкретной однокристалки подход конечно лучший до сих пор
А вот для семейства хотя-бы интел разных поколений... Ну не подъёмно это руками, да и компилятор сделает лучше
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

120. "Сравнение эффективности 20 языков программирования"  –2 +/
Сообщение от User (??), 03-Янв-24, 13:28 
Так-то при решении сколько-нибудь осмысленной объёмной задачи компилятор почти наверняка справится лучше... Т.е. возможны конечно варианты - но in general на x64 как-то так.
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

163. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (166), 03-Янв-24, 15:39 
Хватит повторять эти сказки. Не позорься.
Ответить | Правка | Наверх | Cообщить модератору

193. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (128), 03-Янв-24, 18:13 
А чё так мало желающих лабать на Асме? Неохота парится за 1% прироста производительности.
Ответить | Правка | Наверх | Cообщить модератору

215. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (142), 03-Янв-24, 19:38 
Из своей практики по обработке изображений, там не 1%, а иногда в лоб переписываешь на векторные инструкции - в 30 раз быстрее, неделю походишь, подумаешь - переписываешь и ещё в 2 раза быстрее, как-то так.
Ответить | Правка | Наверх | Cообщить модератору

216. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (-), 03-Янв-24, 19:44 
> Из своей практики по обработке изображений, там не 1%, а иногда в лоб переписываешь на векторные инструкции - в 30 раз быстрее, неделю походишь, подумаешь - переписываешь и ещё в 2 раза быстрее, как-то так.

Полностью согласен. Если речь идет о либе ли ядре приложения.
Но если речь идет о например вьювере или редакторе изображений, то кол-во такого кода будет невелико относительно UI, бизнеса или обвязки.

И есть смысл ускорить именно такой код, а не писать целиком окошки и кнопочки на ASMе.


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

269. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (261), 03-Янв-24, 23:21 
ну давай, покажи, что ты там напрактиковал, где код?
Ответить | Правка | К родителю #215 | Наверх | Cообщить модератору

380. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от User (??), 04-Янв-24, 17:57 
> Из своей практики по обработке изображений, там не 1%, а иногда в
> лоб переписываешь на векторные инструкции - в 30 раз быстрее, неделю
> походишь, подумаешь - переписываешь и ещё в 2 раза быстрее, как-то
> так.

Не-не, не "критический участок специфического кода" на 300 сишных строк - а аналог хотя бы 5-10k чего-нибудь более высокоуровневого.

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

381. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от User (??), 04-Янв-24, 18:00 
> Хватит повторять эти сказки. Не позорься.

Действительно. В жизни дофига примеров вида "переписал 10000 строк плюсового кода на асм, получил хN к производительности" и вас не затруднит привести хотя бы два, да?

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

61. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (61), 03-Янв-24, 12:20 
Посмотрел по ссылкам подробности алгоритмов. Составителям тестов следовало бы привлечь специалистов, которые читали что-либо еще, кроме Википедии. Используется неэффективное хранение матриц. На С можно намного увеличить скорость их перемножения.
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

194. "Сравнение эффективности 20 языков программирования"  –1 +/
Сообщение от Аноним (61), 03-Янв-24, 18:13 
Из всех перечисленных можно вызывать функции на С. В результате все языки будут одинаково быстрыми.
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

317. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Ivan7 (ok), 04-Янв-24, 02:38 
1) В С++ (Clang, GCC, ICC) можно делать ассемблерные вставки (не вызов ассемблерной функции, хотя это тоже можно). 2) В С++ можно сделать функцию встраиваемой и полностью избежать затрат на её вызов, что для небольших и часто вызываемых функций очень актуально. 3) Нет большого смысла писать на другом языке, а потом оптимизировать производительность, переписывая часть функций на С/С++. Проще сразу писать на С++. Если только вы не поддерживаете какой-то уже готовый проект, изначально написанный на другом языке.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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