Число операций в секунду
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
-
- Сообщения: 2
- Зарегистрирован: 22 май 2009, 12:43
Может у кого - нибудь есть примеры кода на С/С++ для определения числа операций в секунду (+,* и т.д.),т.е. для простейшей оценки производительности?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Ну в Windows это сделать достаточно сложно. Процессорное время разделяется между процессами операционной системой и мы можем влиять на это достаточно опосредованно.
Самое простое, что может прийти в голову, это выполнить большое количество однородных операций, замерить время выполнения и потом разделить на количество операций. Такой подход нужен для того, чтобы всевозможные погрешности, а также время выполнения функции, возвращающей текущее время имели минимальное влияние на качество результата.
Самое простое, что может прийти в голову, это выполнить большое количество однородных операций, замерить время выполнения и потом разделить на количество операций. Такой подход нужен для того, чтобы всевозможные погрешности, а также время выполнения функции, возвращающей текущее время имели минимальное влияние на качество результата.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Есть глобальный счетчик инструкций в микропроцессоре, считываемый командой RDTSC, таким образом можно измерить тактовую частоту процессора либо определенного блока комманд в тактовых циклах. А вот точное число операций за единицу времени узнать невозможно, хотя бы по причине периодических прерываний и из-за других механизмов runtime-оптимизаций процессора.
It's a long way to the top if you wanna rock'n'roll