Первое, что вам нужно сделать, это придумать какие-то критерии правильной работы.
Это будет во многом зависеть от характера приложения - ваши критерии могут включать «должен выполнить код x за 3 мс» или «иметь задержку менее 100 мс».
Любой критерий, который не относится к количественному измерению, будет сложным, поскольку он будет субъективным.
Поиск критериев правильной работы позволит вам найти критические части кода. Имейте в виду, что они могут быть обнаружены в угловых случаях, а не при нормальной работе.
Если эти критические части кода маленькие, то инструкции по подсчету для вашей целевой платформы будут относительно простыми. Если у вас есть симулятор, это может быть даже проще. (в зависимости от кода вам может потребоваться выполнить макет, чтобы убедиться, что он выполняется, но это, вероятно, все равно будет проще, чем подсчет инструкций, если у вас есть большой кусок кода для анализа)
Если ваш критический код большой, то вам, возможно, придется сделать что-то похожее на предложение JesperE. Если ваше приложение не нацелено на невероятно чувствительную к цене отрасль, есть вероятность, что заказчик согласится немного ослабить вычисления - поэтому его лучше переоценить, чем оценить ваши требования к процессору.
В чем я отличаюсь от предложения JesperE, так это предложения не концентрироваться на МГц, а на реальных MIPS целей. Например, скомпилируйте и выполните свой код на тестовой платформе - если у вас есть профилировщик, который может быть лучше. Затем скомпилируйте свой код для цели клиента и сделайте грубое сравнение количества инструкций в результирующем исполняемом файле.
Затем вы можете включить это соотношение вместе с относительными MIPS тестового и целевого процессоров в расчет времени выполнения.