Расчет пропускной способности с использованием счетчика циклов - PullRequest
3 голосов
/ 17 июня 2010

Можно ли определить пропускную способность приложения на процессоре по количеству циклов (циклов команд процессора), потребляемых приложением?Если да, то как рассчитать?

Ответы [ 4 ]

2 голосов
/ 17 июня 2010

Если процесс полностью связан с процессором, то вы делите скорость процессора на количество циклов, чтобы получить пропускную способность.

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

2 голосов
/ 17 июня 2010

Simple:

#include <time.h>
clock_t c;
c = clock(); // c holds clock ticks value
c = c / CLOCKS_PER_SEC; // real time, if you need it

Обратите внимание, что полученное значение является приблизительным, для получения дополнительной информации см. Справочную страницу clock() .

0 голосов
/ 13 июля 2010

Если вы используете Cortex-M3 от TI / Luminary Micro, вы можете использовать driverlib , поставляемый TI / Luminary Micro.Используя функции SysTick, вы можете установить SysTickPeriod на 1 такт процессора: таким образом, у вас есть 1 такт процессора между прерываниями.Подсчитав количество прерываний, вы получите «достаточно приблизительную оценку» того, сколько времени занимает функция или функциональный блок.

0 голосов
/ 17 июня 2010

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

...