Я написал простой код в ANSI C и теперь хотел бы выполнить некоторые измерения.Как рассчитать производительность кода ANSI C?
Я измерил время выполнения (используя clock()
функция под ОС Windows и clock_gettime()
под ОС Linux).
Теперь я хотел бы рассчитать, сколько IPSes (инструкции в секунду) выполняет мой процессор при запуске этого кода. (Да, я знаю, что MIPS является патетическим параметром, но даже это, я хочу рассчитать его)
Было бы также приятно видеть, сколько CPI (циклов на инструкцию) требуется для выполнения, например, добавление 3-х элементов и других операций, которые я выполняю. Google говорит, как рассчитать количество MIPS с помощью калькулятора, некоторые знания о моем процессоре (его тактовую частоту), простую математику и множество других параметров (например, CPI), но не говорит КАК их получить!
Я также не нашел функции C/C++, которая бы возвращала количество тактовых циклов, необходимых для выполнения, например. доступ к локальной переменной. Существует также проблема найти Справочное руководство от Intel/AMD для современного процессора, который будет иметь информацию о кодах операций и других.
Я вручную вычислил, что мой код ANSI C занимает 37 операций, но это операции ANSI C, а не инструкции ЦП.
Вы посмотрели «Связанный» список справа? –
Вы посмотрели на gprof? – Kevin
@phresnel - многие из них относятся к процессору MIPS, который указывает, что OP упоминает Windows, я полагаю, что они не используются. Gzegorz - вы можете удалить тег MIPS –