LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

Насколько в общем случае, приблизительно, грамотный код на си будет медленней грамотно оптимизированного, качественного кода на асме?

Проблема в том, что качественный код на асме сложно написать. Компилятор:

  • расчитывает, что выгодно помещать в регистры, а что нет;
  • определяет и оптимизирует критические пути в коде;
  • выравнивает функции, циклы, инструкции по выгодным адресам;
  • выворачивает наизнанку и разворачивает циклы;
  • выбирает наиболее выгодные инструкции и переупорядочивает их с целью максимально загрузить все модули процессора;
  • и т.д.

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

Исходная версия xaizek, :

Насколько в общем случае, приблизительно, грамотный код на си будет медленней грамотно оптимизированного, качественного кода на асме?

Проблема в том, что качественный код на асме сложно написать. Компилятор расчитывает:

  • что выгодно помещать в регистры, а что нет;
  • определяет и оптимизирует критические пути в коде;
  • выравнивает функции, циклы, инструкции по выгодным адресам;
  • выворачивает наизнанку и разворачивает циклы;
  • выбирает наиболее выгодные инструкции и переупорядочивает их с целью максимально загрузить все модули процессора;
  • и т.д.

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