Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Среднее время выполнения команды - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция вычисления расстояния между двумя заданными пунктами http://www.cyberforum.ru/cpp-beginners/thread1131658.html
Вот задание: Представить автотрассу в виде двунаправленного списка, элементы которого содержат информацию о названии населенных пунктов и расстоянии между ними. По заданным названиям двух населенных...
C++ Найти количество повторяющихся слов в строке Помогите доделать программу.Нужно,чтобы программа считала повторные слова. #include "iostream.h" #include<stdio.h> #include<conio.h> #define eof -1 #define yes 1 #define no 0 void main() { http://www.cyberforum.ru/cpp-beginners/thread1131640.html
Конструирование массива в классе C++
#include <iostream> #include <conio.h> #include <vector> using namespace std; class Directory { public: int num; int code; Directory(int n,int k)
Функции и файлы. Чтение и запись данных в файл. Структура "Ноутбук" C++
Приветствую. Помогите, пожалуйста, с программой. Для хранения данных о ноутбуках описать структуру вида: struct NOTEBOOK{ struct disp__res{ // разрешающая способность дисплея...
C++ Вывод массива строк на экран http://www.cyberforum.ru/cpp-beginners/thread1131624.html
Есть массив строк , подскажите пожалуйста как его вывести на экран . Через printf пробовал , так выводит какую-то крякозябру из 2-х символов , а cout не выводит строку из-за ошибки . setlocale(0,...
C++ Дана матрица весов графа, нужно посчитать ранний и поздний срок наступления события и критический путь Добрый вечер! Вот в чем вопрос: дана матрица весов графа, нужно посчитать ранний и поздний срок наступления события и критический путь. Подскажите как программно реализовать поздний срок? Ранний срок... подробнее

Показать сообщение отдельно
НеСказочник
58 / 46 / 8
Регистрация: 12.11.2012
Сообщений: 356
Записей в блоге: 2
27.03.2014, 21:42
функция clock()

Вызываешь дважды. Один раз перед кодом и один после. Разница и будет твоим временем. Функция хороша тем, что возвращает время для твоего потока. Так, если просто проверять системное время, то есть риск захватить и время выполнения других процессов, а тогда измерения будут бессмысленны. но clock() меряет очень грубо, в смысле с точностью до миллисекунд (кажется) поэтому, если участок кода очень коротки и измерения показывают ноль, то нужно запустить код в цикле. Просто оборачиваешь измеряемый код в цикл, что бы одно и то же повторилось много раз (порядка 1000-1000000) но тогда нужно измерить два времени:
1) Время работы кода в цикле, например 1000 повторений.
2) Время работы такого же точно цикла, но холостого, т.е. просто пустой цикл.

Так как на операции перехода тоже затрачивается время, то оборачивание в цикл вносит дополнительную погрешность измерения, которую можно весьма точно исключить, отняв время работы кода в цикле от времени работы цикла. Потом просто делишь получившееся время на число в повторений и получаешь среднее время работы кода.

Только учти, что чтение файла, операторы printf, scanf и прочее, так же занимают время, поэтому нужно стараться измерять только тот участок кода, который тебя интересует, без лишних операторов, вроде чтения файла. Если только ты не собираешься именно чтение файла мерить.

Добавлено через 3 минуты
Когда меряешь в цикле, то вызовы clock() ставишь непосредственно сразу перед циклом и сразу после него.

Добавлено через 52 секунды
А вообще, если задача не сводится только к C++, то есть профессиональный софт для измерения времени работы программ.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru