edbee - Qt Editor Library v0.11.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
simpleprofiler.h
Go to the documentation of this file.
1// edbee - Copyright (c) 2012-2025 by Rick Blommers and contributors
2// SPDX-License-Identifier: MIT
3
4#pragma once
5
6#include "edbee/exports.h"
7
8//#include "config.h"
9
10#include <QString>
11#include <QStack>
12#include <QMap>
13
14
15namespace edbee {
16
17#ifdef CONFIG_PROFILE
18
19#define PROF_BEGIN \
20 SimpleProfiler::instance()->begin( __FILE__, __LINE__, __func__, 0 );
21
22#define PROF_END \
23 SimpleProfiler::instance()->end();
24
25#define PROF_BEGIN_NAMED(name) \
26 SimpleProfiler::instance()->begin( __FILE__, __LINE__, __func__, name );
27
28#else
29#define PROF_BEGIN
30#define PROF_END
31#define PROF_BEGIN_NAMED(name)
32#endif
33
34
36
41
42public:
43
44 static SimpleProfiler* instance();
45
46
49 public:
50 ProfilerItem( const char* filename, int line, const char* function, const char* name );
51 const char* filename() const { return filename_; }
52 int line() const { return line_; }
53 const char* function() const { return function_; }
54 const char* name() const { return name_; }
55 int callCount() const { return callCount_; }
56 qint64 duration() const { return duration_; }
57 qint64 childDuration() const { return childDuration_; }
58 qint64 durationWithoutChilds() const { return duration_ - childDuration_; }
59
61 void addDuration( qint64 duration ) { duration_ += duration; }
63
64 protected:
65 const char* filename_;
66 int line_;
67 const char* function_;
68 const char* name_;
69
71 qint64 duration_;
73 };
74
80
81
82
84 virtual ~SimpleProfiler();
85
86
87 void begin( const char* file, int line, const char* function, const char* name );
88 void end();
89
90 void dumpResults();
91
92
93protected:
94
95 QMap<QString,ProfilerItem*> statsMap_;
96 QStack<ProfileStackItem> stack_;
97};
98
99
100
101} // edbee
the class to 'record a singlel item
Definition simpleprofiler.h:48
int line() const
Definition simpleprofiler.h:52
void addChildDuration(qint64 duration)
Definition simpleprofiler.h:62
qint64 duration_
The total duration.
Definition simpleprofiler.h:71
const char * function() const
Definition simpleprofiler.h:53
int callCount() const
Definition simpleprofiler.h:55
qint64 childDuration_
Duration of child-items (items called by this item)
Definition simpleprofiler.h:72
const char * name() const
Definition simpleprofiler.h:54
qint64 duration() const
Definition simpleprofiler.h:56
int callCount_
The total number of calls.
Definition simpleprofiler.h:70
const char * filename() const
Definition simpleprofiler.h:51
ProfilerItem(const char *filename, int line, const char *function, const char *name)
the constructor for a profile stat issue
Definition simpleprofiler.cpp:19
const char * name_
The custom name.
Definition simpleprofiler.h:68
const char * function_
The function/method name.
Definition simpleprofiler.h:67
void incCallCount()
Definition simpleprofiler.h:60
const char * filename_
The filename.
Definition simpleprofiler.h:65
qint64 childDuration() const
Definition simpleprofiler.h:57
qint64 durationWithoutChilds() const
Definition simpleprofiler.h:58
int line_
The line.
Definition simpleprofiler.h:66
void addDuration(qint64 duration)
Definition simpleprofiler.h:61
static SimpleProfiler * instance()
This method returns the profile instance.
Definition simpleprofiler.cpp:11
void end()
ends profiling
Definition simpleprofiler.cpp:63
QStack< ProfileStackItem > stack_
The current items being processed.
Definition simpleprofiler.h:96
QMap< QString, ProfilerItem * > statsMap_
The statistics.
Definition simpleprofiler.h:95
void dumpResults()
This method dumps the results to the output.
Definition simpleprofiler.cpp:83
SimpleProfiler()
Definition simpleprofiler.cpp:31
void begin(const char *file, int line, const char *function, const char *name)
begin the profiling
Definition simpleprofiler.cpp:46
#define EDBEE_EXPORT
Definition exports.h:15
QT Acessibility has an issue with reporting blank lines between elements lines. defining 'WINDOWS_EMP...
Definition commentcommand.cpp:20
The current stats items.
Definition simpleprofiler.h:76
ProfilerItem * item
Definition simpleprofiler.h:77
qint64 startTime
Definition simpleprofiler.h:78