Как узнать время, необходимое для выполнения конкретной инструкции для микропроцессора Xtensa, например, для wsr / rsr?

Я пытаюсь оптимизировать код на esp32, который использует микропроцессоры xtensa LX6, я хотел узнать стоимость инструкций wsr и rsr, которые используются для чтения или записи в специальных регистрах.

0 ответов

Прежде всего, оптимизируйте только после того, как вы профилировали и пришли к выводу, что это ваше узкое место.

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

В общем, при оптимизации кода, созданного компилятором:

  1. напишите очень простую функцию (которая производит asm, который, по вашему мнению, можно оптимизировать)
  2. создать ТЕСТЫ для этой функции (люди, как правило, вносят странные ошибки при написании собственного asm)
  3. беги и измеряй
  4. замените сгенерированный asm своими оптимизациями
  5. проверьте, что вы не облажались с логикой
  6. беги и измеряй снова

Даже если вам удалось оптимизировать, подумайте о удобочитаемости, переносимости, обслуживании и т. Д., Прежде чем выбирать оптимизированную версию.

Другие вопросы по тегам