Расчет пропускной способности с использованием количества цикла

StackOverflow https://stackoverflow.com/questions/3064301

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

Простой:

#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() человек страницы.

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

Если вы используете Cortex-M3 от Ti / luminary micro, вы можете использовать драйвера доставлено Ti / lumination micro. Использование функций Systick, вы можете установить SystickPeriod на 1 процессор цикла: так что у вас есть 1 часы процессора между прерываниями. Подсчитав количество прерываний, вы должны получить «возле достаточно оценки», сколько времени занимают функция или функциональный блок.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top