История изменений
Исправление xaizek, (текущая версия) :
Насколько в общем случае, приблизительно, грамотный код на си будет медленней грамотно оптимизированного, качественного кода на асме?
Проблема в том, что качественный код на асме сложно написать. Компилятор:
- расчитывает, что выгодно помещать в регистры, а что нет;
- определяет и оптимизирует критические пути в коде;
- выравнивает функции, циклы, инструкции по выгодным адресам;
- выворачивает наизнанку и разворачивает циклы;
- выбирает наиболее выгодные инструкции и переупорядочивает их с целью максимально загрузить все модули процессора;
- и т.д.
Но компилятор один раз написали и он делает хорошо для большого количества кода, а человеку вот это всё надо делать самому. Это просто мало когда выгодно (может быть проще чем заставить компилятор генерировать нужные инструкции в некоторых случаях) из-за высокой трудоёмкости.
Исходная версия xaizek, :
Насколько в общем случае, приблизительно, грамотный код на си будет медленней грамотно оптимизированного, качественного кода на асме?
Проблема в том, что качественный код на асме сложно написать. Компилятор расчитывает:
- что выгодно помещать в регистры, а что нет;
- определяет и оптимизирует критические пути в коде;
- выравнивает функции, циклы, инструкции по выгодным адресам;
- выворачивает наизнанку и разворачивает циклы;
- выбирает наиболее выгодные инструкции и переупорядочивает их с целью максимально загрузить все модули процессора;
- и т.д.
Но компилятор один раз написали и он делает хорошо для большого количества кода, а человеку вот это всё надо делать самому. Это просто мало когда выгодно (может быть проще чем заставить компилятор генерировать нужные инструкции в некоторых случаях) из-за высокой трудоёмкости.