aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprofiler/qmlprofilertracefile.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2014-06-13 16:34:30 +0200
committerUlf Hermann <ulf.hermann@digia.com>2014-06-17 16:26:06 +0200
commitfea6580c82936cbeec69038f9184f30944e659c8 (patch)
treee93922d57619b0e01d198c59365ab45d08a91bf3 /src/plugins/qmlprofiler/qmlprofilertracefile.h
parentb0d79542b858e0089b42f7b8c810d476a4a6b80e (diff)
QmlProfiler: get rid of hash strings
Using strings to identify equal events is terribly inefficient. By keeping a global list of event types we can assign each event a numerical type index and use that to compare them. We can also avoid excessive string copying and data duplication by referring to the global type list where event type information is needed. Task-number: QTCREATORBUG-11823 Change-Id: I837bd5d0f5395b0003002ef8dd278fb27679c65d Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/plugins/qmlprofiler/qmlprofilertracefile.h')
-rw-r--r--src/plugins/qmlprofiler/qmlprofilertracefile.h37
1 files changed, 7 insertions, 30 deletions
diff --git a/src/plugins/qmlprofiler/qmlprofilertracefile.h b/src/plugins/qmlprofiler/qmlprofilertracefile.h
index 74398418d05..f818d0ca5fe 100644
--- a/src/plugins/qmlprofiler/qmlprofilertracefile.h
+++ b/src/plugins/qmlprofiler/qmlprofilertracefile.h
@@ -47,30 +47,6 @@ QT_FORWARD_DECLARE_CLASS(QXmlStreamReader)
namespace QmlProfiler {
namespace Internal {
-
-struct QmlEvent {
- QString displayName;
- QString filename;
- QString details;
- QmlDebug::Message message;
- QmlDebug::RangeType rangeType;
- int detailType;
- int line;
- int column;
-};
-
-struct Range {
- qint64 startTime;
- qint64 duration;
-
- // numeric data used by animations, pixmap cache, scenegraph
- qint64 numericData1;
- qint64 numericData2;
- qint64 numericData3;
- qint64 numericData4;
- qint64 numericData5;
-};
-
class QmlProfilerFileReader : public QObject
{
Q_OBJECT
@@ -100,8 +76,8 @@ private:
QV8ProfilerDataModel *m_v8Model;
- QVector<QmlEvent> m_qmlEvents;
- QVector<QPair<Range, int> > m_ranges;
+ QVector<QmlProfilerDataModel::QmlEventTypeData> m_qmlEvents;
+ QVector<QmlProfilerDataModel::QmlEventData> m_ranges;
};
@@ -114,18 +90,19 @@ public:
void setTraceTime(qint64 startTime, qint64 endTime, qint64 measturedTime);
void setV8DataModel(QV8ProfilerDataModel *dataModel);
- void setQmlEvents(const QVector<QmlProfilerDataModel::QmlEventData> &events);
+ void setQmlEvents(const QVector<QmlProfilerDataModel::QmlEventTypeData> &types,
+ const QVector<QmlProfilerDataModel::QmlEventData> &events);
void save(QIODevice *device);
private:
- void calculateMeasuredTime(const QVector<QmlProfilerDataModel::QmlEventData> &events);
+ void calculateMeasuredTime();
qint64 m_startTime, m_endTime, m_measuredTime;
QV8ProfilerDataModel *m_v8Model;
- QHash<QString,QmlEvent> m_qmlEvents;
- QVector<QPair<Range, QString> > m_ranges;
+ QVector<QmlProfilerDataModel::QmlEventTypeData> m_qmlEvents;
+ QVector<QmlProfilerDataModel::QmlEventData> m_ranges;
QVector<QmlDebug::RangeType> m_acceptedRangeTypes;
QVector<QmlDebug::Message> m_acceptedMessages;
};