diff options
author | Christiaan Janssen <christiaan.janssen@nokia.com> | 2012-05-02 17:32:57 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-04 15:19:25 +0200 |
commit | 3b66a38e58fe030b6d2c4cd12c9884af660652a9 (patch) | |
tree | f5effe0e4d7aac0ed4073f0fc2c1e5bb99108534 /src | |
parent | 6f3bda0dce945a5fc75d8ebad302820fe9979d9b (diff) |
QmlProfiler: storing binding type
Change-Id: If1f02e1e6f6ce6aba9874a63d01a08d57571f991
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/debugger/qqmlprofilerservice.cpp | 32 | ||||
-rw-r--r-- | src/qml/debugger/qqmlprofilerservice_p.h | 15 | ||||
-rw-r--r-- | src/qml/qml/qqmlbinding.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4bindings.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8bindings.cpp | 2 |
5 files changed, 37 insertions, 16 deletions
diff --git a/src/qml/debugger/qqmlprofilerservice.cpp b/src/qml/debugger/qqmlprofilerservice.cpp index 3600586b28..69a4784a6b 100644 --- a/src/qml/debugger/qqmlprofilerservice.cpp +++ b/src/qml/debugger/qqmlprofilerservice.cpp @@ -66,6 +66,9 @@ QByteArray QQmlProfilerData::toByteArray() const //### using QDataStream is relatively expensive QQmlDebugStream ds(&data, QIODevice::WriteOnly); ds << time << messageType << detailType; + if (messageType == (int)QQmlProfilerService::RangeStart && + detailType == (int)QQmlProfilerService::Binding) + ds << bindingType; if (messageType == (int)QQmlProfilerService::RangeData) ds << detailData; if (messageType == (int)QQmlProfilerService::RangeLocation) @@ -160,7 +163,8 @@ void QQmlProfilerService::sendStartedProfilingMessageImpl() if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)StartTrace, QString(), -1, -1, 0, 0}; + QQmlProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)StartTrace, + QString(), -1, -1, 0, 0, 0}; QQmlDebugService::sendMessage(ed.toByteArray()); } @@ -169,16 +173,18 @@ void QQmlProfilerService::addEventImpl(EventType event) if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)event, QString(), -1, -1, 0, 0}; + QQmlProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)event, + QString(), -1, -1, 0, 0, 0}; processMessage(ed); } -void QQmlProfilerService::startRange(RangeType range) +void QQmlProfilerService::startRange(RangeType range, BindingType bindingType) { if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeStart, (int)range, QString(), -1, -1, 0, 0}; + QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeStart, (int)range, + QString(), -1, -1, 0, 0, (int)bindingType}; processMessage(rd); } @@ -187,7 +193,8 @@ void QQmlProfilerService::rangeData(RangeType range, const QString &rData) if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, rData, -1, -1, 0, 0}; + QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, + rData, -1, -1, 0, 0, 0}; processMessage(rd); } @@ -196,7 +203,8 @@ void QQmlProfilerService::rangeData(RangeType range, const QUrl &rData) if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, rData.toString(), -1, -1, 0, 0}; + QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, + rData.toString(), -1, -1, 0, 0, 0}; processMessage(rd); } @@ -205,7 +213,8 @@ void QQmlProfilerService::rangeLocation(RangeType range, const QString &fileName if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, fileName, line, column, 0, 0}; + QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, + fileName, line, column, 0, 0, 0}; processMessage(rd); } @@ -214,7 +223,8 @@ void QQmlProfilerService::rangeLocation(RangeType range, const QUrl &fileName, i if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, fileName.toString(), line, column, 0, 0}; + QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, + fileName.toString(), line, column, 0, 0, 0}; processMessage(rd); } @@ -223,7 +233,8 @@ void QQmlProfilerService::endRange(RangeType range) if (!QQmlDebugService::isDebuggingEnabled() || !m_enabled) return; - QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeEnd, (int)range, QString(), -1, -1, 0, 0}; + QQmlProfilerData rd = {m_timer.nsecsElapsed(), (int)RangeEnd, (int)range, + QString(), -1, -1, 0, 0, 0}; processMessage(rd); } @@ -238,7 +249,8 @@ void QQmlProfilerService::animationFrameImpl(qint64 delta) if (animCount > 0 && delta > 0) { // trim fps to integer int fps = 1000 / delta; - QQmlProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)AnimationFrame, QString(), -1, -1, fps, animCount}; + QQmlProfilerData ed = {m_timer.nsecsElapsed(), (int)Event, (int)AnimationFrame, + QString(), -1, -1, fps, animCount, 0}; processMessage(ed); } } diff --git a/src/qml/debugger/qqmlprofilerservice_p.h b/src/qml/debugger/qqmlprofilerservice_p.h index eeaf871ab4..576f9811b5 100644 --- a/src/qml/debugger/qqmlprofilerservice_p.h +++ b/src/qml/debugger/qqmlprofilerservice_p.h @@ -80,6 +80,7 @@ struct Q_AUTOTEST_EXPORT QQmlProfilerData int column; //used by RangeLocation int framerate; //used by animation events int animationcount; //used by animation events + int bindingType; QByteArray toByteArray() const; }; @@ -125,6 +126,14 @@ public: MaximumRangeType }; + enum BindingType { + QmlBinding, + V8Binding, + V4Binding, + + MaximumBindingType + }; + static void initialize(); static bool startProfiling(); @@ -149,7 +158,7 @@ private: void addEventImpl(EventType); void animationFrameImpl(qint64); - void startRange(RangeType); + void startRange(RangeType, BindingType bindingType = QmlBinding); void rangeData(RangeType, const QString &); void rangeData(RangeType, const QUrl &); void rangeLocation(RangeType, const QString &, int, int); @@ -183,12 +192,12 @@ private: // struct QQmlBindingProfiler { - QQmlBindingProfiler(const QString &url, int line, int column) + QQmlBindingProfiler(const QString &url, int line, int column, QQmlProfilerService::BindingType bindingType) { QQmlProfilerService *instance = QQmlProfilerService::instance; enabled = instance ? instance->profilingEnabled() : false; if (enabled) { - instance->startRange(QQmlProfilerService::Binding); + instance->startRange(QQmlProfilerService::Binding, bindingType); instance->rangeLocation(QQmlProfilerService::Binding, url, line, column); } } diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index 45c22734bc..d60a1b461f 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -196,7 +196,7 @@ void QQmlBinding::update(QQmlPropertyPrivate::WriteFlags flags) trace.addDetail("Column", m_columnNumber); if (!updatingFlag()) { - QQmlBindingProfiler prof(m_url, m_lineNumber, m_columnNumber); + QQmlBindingProfiler prof(m_url, m_lineNumber, m_columnNumber, QQmlProfilerService::QmlBinding); setUpdatingFlag(true); QQmlAbstractExpression::DeleteWatcher watcher(this); diff --git a/src/qml/qml/v4/qv4bindings.cpp b/src/qml/qml/v4/qv4bindings.cpp index dbbaa23ab8..944d4de210 100644 --- a/src/qml/qml/v4/qv4bindings.cpp +++ b/src/qml/qml/v4/qv4bindings.cpp @@ -367,7 +367,7 @@ void QV4Bindings::run(Binding *binding, QQmlPropertyPrivate::WriteFlags flags) trace.addDetail("Line", binding->line); trace.addDetail("Column", binding->column); - QQmlBindingProfiler prof(context->urlString, binding->line, binding->column); + QQmlBindingProfiler prof(context->urlString, binding->line, binding->column, QQmlProfilerService::V4Binding); if (binding->updating) { QString name; diff --git a/src/qml/qml/v8/qv8bindings.cpp b/src/qml/qml/v8/qv8bindings.cpp index 7cb14fb8c1..f4cad9aa4b 100644 --- a/src/qml/qml/v8/qv8bindings.cpp +++ b/src/qml/qml/v8/qv8bindings.cpp @@ -119,7 +119,7 @@ void QV8Bindings::Binding::update(QQmlPropertyPrivate::WriteFlags flags) trace.addDetail("Line", instruction->line); trace.addDetail("Column", instruction->column); - QQmlBindingProfiler prof(parent->urlString(), instruction->line, instruction->column); + QQmlBindingProfiler prof(parent->urlString(), instruction->line, instruction->column, QQmlProfilerService::V8Binding); if (!updatingFlag()) { setUpdatingFlag(true); |