Это не совсем тривиальный вопрос.Позвольте мне попытаться объяснить:
В разных ОС есть несколько инструментов, которые делают именно то, что вы хотите, но эти инструменты обычно являются частью большей среды.Каждая инструкция переводится в определенное количество циклов, в зависимости от процессора, на котором работал компилятор, и процессора, на котором выполнялась программа.
Я не могу дать вам однозначный ответ, потому что мне не хватаетданные, по которым я могу судить, но я работаю на IBM в области баз данных, и мы используем инструменты для измерения циклов и инструкций для нашего кода, и эти трассы действительны только для фактического процессора, на котором была скомпилирована и выполнялась программа.В зависимости от внутренней структуры конвейера вашего процессора и эффективности вашего компилятора, результирующий код, скорее всего, все еще будет иметь ошибки в кеше и другие области, о которых вам придется беспокоиться.(В этом случае вы, возможно, захотите взглянуть на FDPR ...)
Если вы хотите узнать, сколько циклов требуется вашей программе для запуска на вашем ЦП (который был скомпилирован вашим компилятором), вы должны понимать,как работает процессор и как компилятор генерировал код.
Извините, если ответа было недостаточно для решения вашей проблемы под рукой.Вы сказали, что используете gcc для арки x86.Я хотел бы работать с получением кода сборки, сопоставленного с вашим процессором.Я уверен, что вы найдете некоторые области, где gcc мог бы работать лучше ...