blob: a5575f6a0fae272ba4c43c185593891568fc0a69 (
plain)
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
59
60
61
|
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef QQMLJSCOMPILERSTATSREPORTER_P_H
#define QQMLJSCOMPILERSTATSREPORTER_P_H
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists purely as an
// implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
#include <QTextStream>
#include <qtqmlcompilerexports.h>
#include <private/qqmljscompilerstats_p.h>
QT_BEGIN_NAMESPACE
namespace QQmlJS {
class Q_QMLCOMPILER_EXPORT AotStatsReporter
{
public:
AotStatsReporter(const QQmlJS::AotStats &stats, const QStringList &emptyModules,
const QStringList &onlyBytecodeModules);
QString format() const;
private:
void formatDetailedStats(QTextStream &) const;
void formatSummary(QTextStream &) const;
QString formatSuccessRate(int codegens, int successes, int skips) const;
const AotStats &m_aotstats;
const QStringList &m_emptyModules;
const QStringList &m_onlyBytecodeModules;
struct Counters
{
int successes = 0;
int skips = 0;
int codegens = 0;
};
Counters m_totalCounters;
QHash<QString, Counters> m_moduleCounters;
QHash<QString, QHash<QString, Counters>> m_fileCounters;
QList<std::chrono::microseconds> m_successDurations;
};
} // namespace QQmlJS
QT_END_NAMESPACE
#endif // QQMLJSCOMPILERSTATSREPORTER_P_H
|