diff options
| author | Simon Hausmann <simon.hausmann@qt.io> | 2018-07-20 09:58:08 +0200 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-07-30 19:46:34 +0000 |
| commit | 88bdcd0b7fa62a7ea0fdc2286ad1f51d869fd3cf (patch) | |
| tree | babb719305d04af155a394dd02f1d80b22fc2a81 /src/qml/compiler/qqmlirbuilder.cpp | |
| parent | f67ffaad9742cd1fc0d2576de0a2fd20bc48c3e6 (diff) | |
Add debug code for dumping unit stats
This is useful for profiling the sizes of cache files.
Change-Id: I831d0a20c4eda3d707221a61fa7290857605c7fb
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qqmlirbuilder.cpp')
| -rw-r--r-- | src/qml/compiler/qqmlirbuilder.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index 820f127331..04a7854d56 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -1758,6 +1758,28 @@ QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output, const QV4: qmlUnit->generateChecksum(); + static const bool showStats = qEnvironmentVariableIsSet("QML_SHOW_UNIT_STATS"); + if (showStats) { + qDebug() << "Generated QML unit that is" << qmlUnit->unitSize << "bytes big contains:"; + qDebug() << " " << qmlUnit->functionTableSize << "functions"; + qDebug() << " " << unitSize << "for JS unit"; + qDebug() << " " << importSize << "for imports"; + qDebug() << " " << objectsSize << "for" << qmlUnit->nObjects << "objects"; + quint32 totalBindingCount = 0; + for (quint32 i = 0; i < qmlUnit->nObjects; ++i) + totalBindingCount += qmlUnit->objectAt(i)->nBindings; + qDebug() << " " << totalBindingCount << "bindings"; + quint32 totalCodeSize = 0; + for (quint32 i = 0; i < qmlUnit->functionTableSize; ++i) + totalCodeSize += qmlUnit->functionAt(i)->codeSize; + qDebug() << " " << totalCodeSize << "bytes total byte code"; + qDebug() << " " << qmlUnit->stringTableSize << "strings"; + quint32 totalStringSize = 0; + for (quint32 i = 0; i < qmlUnit->stringTableSize; ++i) + totalStringSize += QV4::CompiledData::String::calculateSize(qmlUnit->stringAt(i)); + qDebug() << " " << totalStringSize << "bytes total strings"; + } + return qmlUnit; } |
