Ответ 1
http://www.agner.org/optimize/optimizing_assembly.pdf
Я бы сказал, "повеселиться", но это, вероятно, будет действительно подлым: (
Думаю, вас интересует глава 9 "Оптимизация скорости".
Я работаю над некоторым кодом, который содержит некоторые (сгенерированные компилятором) фрагменты кода сборки, которые мы идентифицировали, - это скобки для бутылочек.
Я достаточно разбираюсь в сборке, чтобы запутаться и искать ручную оптимизацию. Мне интересно, если есть какие-нибудь хорошие онлайн-руководства, которые предлагают многоразовые методы, которые будут использоваться в сборке ручных оптимизаций. Это не то, что я ожидаю, что мне придется делать очень часто, поэтому я должен научиться делать это снова, с нуля, каждый раз.
http://www.agner.org/optimize/optimizing_assembly.pdf
Я бы сказал, "повеселиться", но это, вероятно, будет действительно подлым: (
Думаю, вас интересует глава 9 "Оптимизация скорости".
http://www.agner.org/optimize/
http://www.intel.com/intelpress/sum_swcb2.htm - нужно покупать и подчеркивать внутреннюю, а не сборку
Хотя это может и не понадобиться...
В общем, вы пойдете намного дальше, помогая компилятору (я использую GCC в качестве примера, но это должно быть актуально и для других компиляторов):
(x>>8)&0xFF
или (x&0xFF00)>>8
?) Это одна инструкция для PPC, но компилятор может использовать два)Я был бы удивлен, если бы вы могли получить более 20% ускорения над приличным компилятором C, если только не указаны конкретные инструкции/функции, которые компилятор не использует. И 20% редко стоит писать домой, если это не все, что делает ваше приложение.
Сайт Agner Fog кажется общим ответом. Другая страница, которую я нашел особенно полезной на протяжении многих лет, была страницей Пола Шея...
Я согласен с предыдущими ответами, предлагая руководства по оптимизации Agner Fog. Они действительно замечательные.
Кроме того, Intel и AMD также предоставляют некоторые свободно доступные руководства по оптимизации, например. для вас может быть интересно следующее:
Справочное руководство по оптимизации архитектуры Intel 64 и IA-32
Руководство по оптимизации программного обеспечения для процессоров AMD Family 10h