Как узнать время, необходимое для выполнения конкретной инструкции для микропроцессора Xtensa, например, для wsr / rsr?
Я пытаюсь оптимизировать код на esp32, который использует микропроцессоры xtensa LX6, я хотел узнать стоимость инструкций wsr и rsr, которые используются для чтения или записи в специальных регистрах.
0 ответов
Прежде всего, оптимизируйте только после того, как вы профилировали и пришли к выводу, что это ваше узкое место.
В редких случаях (например, функция, которая обращается к регистрам) может быть хорошей идеей оптимизировать код, сгенерированный компилятором, но обычно это не является узким местом.
В общем, при оптимизации кода, созданного компилятором:
- напишите очень простую функцию (которая производит asm, который, по вашему мнению, можно оптимизировать)
- создать ТЕСТЫ для этой функции (люди, как правило, вносят странные ошибки при написании собственного asm)
- беги и измеряй
- замените сгенерированный asm своими оптимизациями
- проверьте, что вы не облажались с логикой
- беги и измеряй снова
Даже если вам удалось оптимизировать, подумайте о удобочитаемости, переносимости, обслуживании и т. Д., Прежде чем выбирать оптимизированную версию.