Текущие выпущенные версии QEMU не предоставляют никаких средств для этого. Предстоящая поддержка «TCG-плагина», которая должна выйти в выпуске 4.2 в конце года, позволит вам написать простой плагин «считать выполненные инструкции», но это (как и при трассировке -d) добавит накладные расходы. .
Опция -icount, безусловно, сбивает с толку, но она заставляет эмулируемый ЦП (пытаться) запускаться с определенным количеством выполняемых инструкций в секунду, в отличие от значения по умолчанию «максимально быстро»». Это приводит к более высоким издержкам (и останавливает QEMU, используя несколько потоков хоста для гостей SMP), но является более детерминированным.
С точки зрения философии, «количество команд в секунду» является довольно вводящим в заблуждение показателем для эмуляторов, поскольку время, затрачиваемоеВыполнение инструкции может значительно отличаться от аппаратного. Загрузки и магазины работают медленнее, чем на реальном оборудовании. Инструкции с плавающей запятой невероятно медленны (возможно, в 10 раз или хуже от целочисленной арифметической инструкции, где реальное оборудование может выполнять оба за один цикл). У эмуляторов JIT, таких как QEMU, есть профиль производительности start-stop, где выполнение полностью останавливается, пока мы переводим блок кода, тогда как реальный процессор или интерпретирующий эмулятор не будут иметь этих пауз. Степень влияния времени JIT будет зависеть от того, будет ли ваш код часто перезапускать ранее переведенный горячий код или большую часть своего времени он тратит на выполнение «нового» кода, и от того, выполняет ли он действия, приводящие к тому, что JIT отбрасывает старый код (например, самоизменяющийся код или частые переключения между процессами). Если у вас в эмуляторе есть «IPS meter», вы увидите, что значение, о котором оно сообщается, сильно колеблется, когда гостевой код выполняется и выполняет разные действия. Вам, вероятно, лучше просто выбрать эталонный тест, который, по вашему мнению, отражает ваш реальный сценарий использования, запустить его на различных эмуляторах и сравнить время настенных часов, необходимое для его завершения.