aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@nokia.com>2012-05-02 17:32:57 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-04 15:19:25 +0200
commit3b66a38e58fe030b6d2c4cd12c9884af660652a9 (patch)
treef5effe0e4d7aac0ed4073f0fc2c1e5bb99108534 /src/qml
parent6f3bda0dce945a5fc75d8ebad302820fe9979d9b (diff)
QmlProfiler: storing binding type
Change-Id: If1f02e1e6f6ce6aba9874a63d01a08d57571f991 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/qml')
-rw-r--r--src/qml/debugger/qqmlprofilerservice.cpp32
-rw-r--r--src/qml/debugger/qqmlprofilerservice_p.h15
-rw-r--r--src/qml/qml/qqmlbinding.cpp2
-rw-r--r--src/qml/qml/v4/qv4bindings.cpp2
-rw-r--r--src/qml/qml/v8/qv8bindings.cpp2
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);