LMMS
Loading...
Searching...
No Matches
juce_PerformanceCounter.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
50{
51public:
52 //==============================================================================
61 PerformanceCounter (const String& counterName,
62 int runsPerPrintout = 100,
63 const File& loggingFile = File());
64
67
68 //==============================================================================
72 void start() noexcept;
73
81 bool stop();
82
89 void printStatistics();
90
93 {
94 Statistics() noexcept;
95
96 void clear() noexcept;
97 String toString() const;
98
99 void addResult (double elapsed) noexcept;
100
107 };
108
111
112private:
113 //==============================================================================
117
119};
120
121
122//==============================================================================
144{
145public:
146 ScopedTimeMeasurement (double& resultInSeconds) noexcept
147 : result (resultInSeconds)
148 {
149 result = 0.0;
150 }
151
153 {
154 static auto scaler = 1.0 / static_cast<double> (Time::getHighResolutionTicksPerSecond());
155 result = static_cast<double> (Time::getHighResolutionTicks() - startTimeTicks) * scaler;
156 }
157
158private:
160 double& result;
161
163};
164
165} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_File.h:45
Statistics stats
Definition juce_PerformanceCounter.h:114
int64 runsPerPrint
Definition juce_PerformanceCounter.h:115
int64 startTime
Definition juce_PerformanceCounter.h:115
File outputFile
Definition juce_PerformanceCounter.h:116
Statistics getStatisticsAndReset()
Definition juce_PerformanceCounter.cpp:121
PerformanceCounter(const String &counterName, int runsPerPrintout=100, const File &loggingFile=File())
Definition juce_PerformanceCounter.cpp:37
void printStatistics()
Definition juce_PerformanceCounter.cpp:113
int64 startTimeTicks
Definition juce_PerformanceCounter.h:159
~ScopedTimeMeasurement()
Definition juce_PerformanceCounter.h:152
double & result
Definition juce_PerformanceCounter.h:160
ScopedTimeMeasurement(double &resultInSeconds) noexcept
Definition juce_PerformanceCounter.h:146
Definition juce_String.h:53
static int64 getHighResolutionTicksPerSecond() noexcept
Definition juce_linux_SystemStats.cpp:329
static int64 getHighResolutionTicks() noexcept
Definition juce_linux_SystemStats.cpp:313
virtual ASIOError stop()=0
virtual ASIOError start()=0
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
long long int64
Definition juce_MathsFunctions.h:54
Definition juce_PerformanceCounter.h:93
String name
Definition juce_PerformanceCounter.h:101
void addResult(double elapsed) noexcept
Definition juce_PerformanceCounter.cpp:61
double totalSeconds
Definition juce_PerformanceCounter.h:105
double minimumSeconds
Definition juce_PerformanceCounter.h:104
double maximumSeconds
Definition juce_PerformanceCounter.h:103
void clear() noexcept
Definition juce_PerformanceCounter.cpp:55
String toString() const
Definition juce_PerformanceCounter.cpp:84
int64 numRuns
Definition juce_PerformanceCounter.h:106
Statistics() noexcept
Definition juce_PerformanceCounter.cpp:50
double averageSeconds
Definition juce_PerformanceCounter.h:102
int result
Definition process.c:1455