diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2019-10-15 16:28:12 +0200 |
---|---|---|
committer | Milian Wolff <milian.wolff@kdab.com> | 2019-12-13 17:43:17 +0100 |
commit | e15517def6cc2a78b2fb9bb916d82aa0a32ffc20 (patch) | |
tree | 18ae4f3fef14064412f1354ea7920625acc4e185 /src/qml/qml | |
parent | 3ea16d737b8b3750c0c8d2d4bf2c8bb24037329c (diff) |
Add more trace points to Qt QML
This patch aligns the trace points more with the existing coverage from
the Qt QML profiler. The following things can now be traced:
- file compilation time
- binding execution
- signal handling
Change-Id: I5b7f1a495f0556482ccd5c07474391b291742ef1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlbinding.cpp | 4 | ||||
-rw-r--r-- | src/qml/qml/qqmlboundsignal.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/qqmldatablob.cpp | 3 | ||||
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 4 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index 112e5b558a..162adf8364 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -54,6 +54,8 @@ #include <private/qv4variantobject_p.h> #include <private/qv4jscall_p.h> +#include <qtqml_tracepoints_p.h> + #include <QVariant> #include <QtCore/qdebug.h> #include <QVector> @@ -182,6 +184,8 @@ void QQmlBinding::update(QQmlPropertyData::WriteFlags flags) if (canUseAccessor()) flags.setFlag(QQmlPropertyData::BypassInterceptor); + Q_TRACE_SCOPE(QQmlBinding, engine, function() ? function()->name()->toQString() : QString(), + sourceLocation().sourceFile, sourceLocation().line, sourceLocation().column); QQmlBindingProfiler prof(QQmlEnginePrivate::get(engine)->profiler, function()); doUpdate(watcher, flags, scope); diff --git a/src/qml/qml/qqmlboundsignal.cpp b/src/qml/qml/qqmlboundsignal.cpp index ff01e737ca..b347bb3829 100644 --- a/src/qml/qml/qqmlboundsignal.cpp +++ b/src/qml/qml/qqmlboundsignal.cpp @@ -60,6 +60,7 @@ #include <QtCore/qdebug.h> +#include <qtqml_tracepoints_p.h> QT_BEGIN_NAMESPACE @@ -352,6 +353,10 @@ void QQmlBoundSignal_callback(QQmlNotifierEndpoint *e, void **a) QQmlEngine *engine; if (s->m_expression && (engine = s->m_expression->engine())) { + Q_TRACE_SCOPE(QQmlHandlingSignal, engine, + s->m_expression->function() ? s->m_expression->function()->name()->toQString() : QString(), + s->m_expression->sourceLocation().sourceFile, s->m_expression->sourceLocation().line, + s->m_expression->sourceLocation().column); QQmlHandlingSignalProfiler prof(QQmlEnginePrivate::get(engine)->profiler, s->m_expression); s->m_expression->evaluate(a); if (s->m_expression && s->m_expression->hasError()) { diff --git a/src/qml/qml/qqmldatablob.cpp b/src/qml/qml/qqmldatablob.cpp index 750fc6de50..1ab6002f0a 100644 --- a/src/qml/qml/qqmldatablob.cpp +++ b/src/qml/qml/qqmldatablob.cpp @@ -45,6 +45,8 @@ #include <QtQml/qqmlengine.h> +#include <qtqml_tracepoints_p.h> + #ifdef DATABLOB_DEBUG #define ASSERT_CALLBACK() do { if (!m_typeLoader || !m_typeLoader->m_thread->isThisThread()) qFatal("QQmlDataBlob: An API call was made outside a callback"); } while (false) #else @@ -559,6 +561,7 @@ void QQmlDataBlob::notifyAllWaitingOnMe() void QQmlDataBlob::notifyComplete(QQmlDataBlob *blob) { Q_ASSERT(blob->status() == Error || blob->status() == Complete); + Q_TRACE_SCOPE(QQmlCompiling, blob->url()); QQmlCompilingProfiler prof(typeLoader()->profiler(), blob); m_inCallback = true; diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index e0131c0a98..989c3fe4b0 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -51,6 +51,8 @@ #include <QtQml/qqmlextensioninterface.h> #include <QtQml/qqmlfile.h> +#include <qtqml_tracepoints_p.h> + #include <QtCore/qdir.h> #include <QtCore/qdiriterator.h> #include <QtCore/qfile.h> @@ -436,6 +438,7 @@ void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QString &fileName) void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QQmlDataBlob::SourceCodeData &d) { + Q_TRACE_SCOPE(QQmlCompiling, blob->url()); QQmlCompilingProfiler prof(profiler(), blob); blob->m_inCallback = true; @@ -455,6 +458,7 @@ void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QQmlDataBlob::SourceCodeD void QQmlTypeLoader::setCachedUnit(QQmlDataBlob *blob, const QV4::CompiledData::Unit *unit) { + Q_TRACE_SCOPE(QQmlCompiling, blob->url()); QQmlCompilingProfiler prof(profiler(), blob); blob->m_inCallback = true; |