0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 3
1

Время выполнения части кода

05.12.2019, 23:51. Показов 958. Ответов 1
Метки нет (Все метки)

Собственно нужно найти время выполнения участка кода( маленького участка). Сделал сначала через GetTickOut(до начала кода и после) и вычел. Но в итоге показало время равное 0. Видимо код слишком маленький. Через clock() тоже самое. Вроде как есть функция get_time, но не даёт её использовать, пишет: отсутствуют экземпляры шаблон функции, соответствующие списку аргументов. Что можно сделать именно с get_time, чтобы использовать её?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2019, 23:51
Ответы с готовыми решениями:

Измерить время выполнения кода
В C# такая классная вещь есть - Stopwatch, которая могла время измерять. В C++ же кроме clock() из...

Время выполнения кода ffmpeg
подскажите пожалуйста как будет выглядеть код на измерение времени выполнения работы команды...

Время выполнения фрагмента кода
Как измерить время выполнения алгоритма? В темах читал про clock() , сделал, но на выводе всегда 0

Измерять время выполнения участка кода
// Фиксируем начальный момент времени clock_t start = clock(); //участок кода...

1
Мозгоправ
1735 / 1029 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
06.12.2019, 01:56 2
Цитата Сообщение от GetFor Посмотреть сообщение
нужно найти время выполнения участка кода( маленького участка)
Скорее всего вы не поймаете время выполнения маленького участка кода. Если, конечно, в этом маленьком участке нет "тяжёлых" вызовов (например перераспределение памяти).

Попробуйте посмотреть std::chrono.

Можете попробовать воспользоваться этим:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <chrono>
#include <string>
 
template <typename T = chrono::nanoseconds>
class TimeLag {
    std::chrono::high_resolution_clock::time_point m_start, m_end;
    std::chrono::high_resolution_clock::time_point m_startPause, m_endPause;
    std::chrono::high_resolution_clock::duration m_pauseDuration;
    bool m_paused;
public:
    TimeLag() : m_paused(false), m_pauseDuration(std::chrono::duration_values<T>::zero()) {}
    void start() {
        m_start = std::chrono::high_resolution_clock::now();
        m_pauseDuration = std::chrono::duration_values<T>::zero();
    }
    void stop(bool reportNow = false, const std::string& comment = std::string()) {
        m_end = std::chrono::high_resolution_clock::now();
        if (reportNow)
            report(comment);
    }
    void report(const std::string& comment) {
        std::cout << "--- " << comment << (comment.empty() ? "" : ": ") << "Elapsed time: "
            << std::chrono::duration_cast<T>(m_end - m_start - m_pauseDuration).count();
        if (is_same<T, std::chrono::nanoseconds>::value)
            std::cout << " ns" << std::endl;
        else if (is_same<T, std::chrono::microseconds>::value)
            std::cout << " us" << std::endl;
        else if (is_same<T, std::chrono::milliseconds>::value)
            std::cout << " ms" << std::endl;
        else if (is_same<T, std::chrono::seconds>::value)
            std::cout << " s" << std::endl;
    }
    void pause() {
        if (!m_paused) {
            m_paused = true;
            m_startPause = std::chrono::high_resolution_clock::now();
        }
        else {
            m_paused = false;
            m_endPause = std::chrono::high_resolution_clock::now();
            m_pauseDuration += m_endPause - m_startPause;
        }
    }
};
 
using namespace std;
 
 
int main()
{
    TimeLag<chrono::nanoseconds> timer;
 
    timer.start();
    cout << "Hello, World!" << endl;
    timer.stop();
    timer.report("ostream operation");
}
get_time() - это вообще не про это.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2019, 01:56
Помогаю со студенческими работами здесь

Вычислить время работы части кода
#include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;fstream&gt; #include &lt;Windows.h&gt; #include &lt;stack&gt;...

Как измерить время выполнения отдельного участка кода?
Собственно возник вопрос, каким образом измерить время выполнения того или инного учатска кода?(На...

Методы защиты данных от записи во время выполнения участка кода?
День добрый, форумчане. Вводные данные: - Весь свой код строю на работе с указателями. -...

Время выполнения
Здравствуйте. Столкнулся с выходом за рамки работы программы. Решил ее изменив немного цикл, но не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru