Size: a a a

pro.osdev - os development

2021 August 19

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Вот это золото, конечно.
"Колибри самая быстрая ОС, загружается за 2 секунды", и не только

https://dev.to/johnfound/why-assembly-programs-are-faster-than-hll-programs-despite-that-the-compilers-are-so-advanced-51ha

Наверное, народ после таких статей и начинает с горящими глазами печатать apt-get install fasm.
источник

RG

R G in pro.osdev - os development
ну да, быстро загружается, потому что там особо нечего загружать))
источник

N

Nina 🐛 in pro.osdev - os development
Я выше привела два конкретных примера задач, в которых мне требовалась скорость и я использовала Ассемблер. Вы же понимаете, что за время 2 микросекунды процессор ARM не так уж много инструкций успеет выполнить? Ну, и объем кода был не десятки тысяч строк, а для обработчика быстрых прерываний - порядка несколько тысяч, а для шифрования - несколько сотен строк
источник

N

Nina 🐛 in pro.osdev - os development
На большой кодовой базе не использую Ассемблер 😊
источник

BD

Berkus Decker in pro.osdev - os development
Ну почему, ассемблерный код приходилось. Дурацкое занятие. Сишный код и то удобнее по скорости оптимизировать.
источник

BV

Boris Vinogradov in pro.osdev - os development
К вашему сожалению я занимался оптимизацией под арм и только на аарч32 это имело смысл на аарч64 код на С безнадежно уделывал любые ассемблерные оптимизации
источник

BD

Berkus Decker in pro.osdev - os development
Ну так это один из тех случаев «когда не подходит яву», как написал Игорь
источник

N

Nina 🐛 in pro.osdev - os development
Занятие дурацкое, согласна 😊
источник

N

Nina 🐛 in pro.osdev - os development
Что за компилятор?
источник

N

Nina 🐛 in pro.osdev - os development
Кстати, да, интеловская архитектура - более благодатное поле для оптимизации производительности 😊
источник

BV

Boris Vinogradov in pro.osdev - os development
Если старое 32х битное говно то да, в новом тоже прибрали
источник

BV

Boris Vinogradov in pro.osdev - os development
Гцц линаровский с патчами от самсы и шланг тоже с кучей того что сейчас в мейнстриме
источник

BD

Berkus Decker in pro.osdev - os development
Видимо поэтому у меня весь софт на м1 работает гораздо быстрее)
источник

BV

Boris Vinogradov in pro.osdev - os development
Даже софт под х86)))
источник

BD

Berkus Decker in pro.osdev - os development
И он тоже, д
источник

W

Wild_Wind in pro.osdev - os development
Используете. Как вставки. Проблема в том, что оптимизировать внешний ассемблер можно только на этапе линковки, с межмодульной оптимизацией (lto). И в случае если этот внешний модуль будет часто дергаться, то компилятор не сможет провести ряд оптимизаций, т.к. нет доступа к тому, что оптимизировать и заинлайнить/выкинуть.

P.S. а если пометить функцию как pure(const), и в случае более одного вызова оной с одинаковыми аргументами, компилятор может схлопнуть остальные вызовы и подставить результат, если функция чистаю. Это позволило процентов на 5-12 срезать косты в одной цифродробилке.
И таких крутилок много. Асм многие из них предоставить не может :(
источник

N

Nina 🐛 in pro.osdev - os development
источник

N

Nina 🐛 in pro.osdev - os development
Я понимаю, что это всего лишь один из примеров оптимизации, но вызовы одинаковых функций уже очень давно известны (и, соответственно, активно используются) в Ассемблере как макрокоманды
источник

BD

Berkus Decker in pro.osdev - os development
Ассемблер у нас какой то бог или имя собственное?
источник

N

Nina 🐛 in pro.osdev - os development
Название языка программирования пишется с большой буквы (так же, как C, Паскаль, Python и т.д.) 😊
источник