писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас используют ассемблер (кроме мк)?
Иногда - тупо проще. Например битовые операции.
На самом деле ассемблер не занимает много времени, он очень удобный и заразительный, на нём просто ментально приятно писать, как массаж для мозга. А ещё приносит кучу денег, вот и всё. И компиляторы недостаточно умные.
Слышал обратное, мол, человек не может тягаться с компилятором
Это заблуждение, причем довольно глупое, потому что компилятор написал человек.
Не могу сейчас скинуть источник, но как то смотрел лекцию про конвейер в риск5 и там компилятор подгонял инструкции так, чтобы сократить время простоя. Может ли человек продумать каждый такт?
кто написал компилятор? кто внедрил данный функционал в него?
Я не об этом, а о том что "человек не может тягаться с компилятором"
человек смог изобрести трактор, но это не значит что эффективнее тянуть плуг на горбу.
а вот например файрфокс, занимающий одним сайтом все процессорное время и всю доступную память- это эффективное решение?:)
и тут ты говоришь об эфект вности
конечно да, аппаратура не простаивает, ресурсы используются насколько возможно
Нет, я сравниваю эффективность человека и компилятора.
компиль эфективней
В продолжении о том что человек может оптимизировать лучше любого компилятора
Да, может. Как раз человек Агнер Фог создал таблицу скорости исполнения инструкций на x86, а также написал методички по оптимизации (хотя, сами Intel их ещё писали), и всё это от человека для человека, именно чтоб писать код на ассемблере (или написать свой компилятор).
Этих таблиц было достаточно для оптимизации под Pentium. Сейчас они позволяют только примерно прикинуть производительность.
Компилятор тоже часто может делать грубые ошибки по оптимизации. Да и нельзя исключать расслабленного программиста, который надеется на компилятор.
Например, вызывая какие-то функции, которые можно разложить по итерациям)
Обсуждают сегодня