Использование языка ассемблера в C / C ++

Я помню, как где-то читал, что для реальной оптимизации и ускорения определенного участка кода программисты пишут его на языке ассемблера. Мои вопросы:

  1. Эта практика еще выполняется? и как это сделать?
  2. Разве писать на языке ассемблера не слишком громоздко и архаично?
  3. Когда мы компилируем код C (с флагом -O3 или без него), компилятор выполняет некоторую оптимизацию кода и связывает все библиотеки и преобразует код в двоичный объектный файл. Итак, когда мы запускаем программу, она уже находится в самой простой форме, то есть в двоичной форме. Так как же использование «языка ассемблера» помогает?

Я пытаюсь понять эту концепцию, и любая помощь или ссылки приветствуются.

ОБНОВЛЕНИЕ: Перефразируя пункт 3 в соответствии с просьбой dbemerlin - потому что вы можете написать более эффективный ассемблерный код, чем генерирует компилятор, но если вы не являетесь экспертом по ассемблеру, ваш код, вероятно, будет работать медленнее, потому что часто компилятор оптимизирует код лучше, чем большинство людей кан.

43
задан Ryan Tenney 1 May 2012 в 04:17
поделиться