forked from qt-creator/qt-creator
QmlProfiler: Don't process all events twice when loading traces
At the end of QmlProfilerFileReader::load() we have a perfectly valid set of types and events which we can just pass on to the model as-is. Change-Id: I6981663f409c4647f4d5ae8a73b5d14cc701017b Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
@@ -130,6 +130,11 @@ void QmlProfilerFileReader::setV8DataModel(QV8ProfilerDataModel *dataModel)
|
||||
m_v8Model = dataModel;
|
||||
}
|
||||
|
||||
void QmlProfilerFileReader::setQmlDataModel(QmlProfilerDataModel *dataModel)
|
||||
{
|
||||
m_qmlModel = dataModel;
|
||||
}
|
||||
|
||||
bool QmlProfilerFileReader::load(QIODevice *device)
|
||||
{
|
||||
QXmlStreamReader stream(device);
|
||||
@@ -180,8 +185,7 @@ bool QmlProfilerFileReader::load(QIODevice *device)
|
||||
emit error(tr("Error while parsing trace data file: %1").arg(stream.errorString()));
|
||||
return false;
|
||||
} else {
|
||||
processQmlEvents();
|
||||
|
||||
m_qmlModel->setData(m_qmlEvents, m_ranges);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -372,28 +376,6 @@ void QmlProfilerFileReader::loadProfilerDataModel(QXmlStreamReader &stream)
|
||||
}
|
||||
}
|
||||
|
||||
void QmlProfilerFileReader::processQmlEvents()
|
||||
{
|
||||
for (int i = 0; i < m_ranges.size(); ++i) {
|
||||
const QmlProfilerDataModel::QmlEventData &range = m_ranges[i];
|
||||
int eventIndex = range.typeIndex;
|
||||
|
||||
if (eventIndex < 0 || eventIndex >= m_qmlEvents.size()) {
|
||||
qWarning() << ".qtd file - range index" << eventIndex
|
||||
<< "is outside of bounds (0, " << m_qmlEvents.size() << ")";
|
||||
continue;
|
||||
}
|
||||
|
||||
const QmlProfilerDataModel::QmlEventTypeData &event = m_qmlEvents[eventIndex];
|
||||
|
||||
emit rangedEvent(event.message, event.rangeType, event.detailType, range.startTime,
|
||||
range.duration, event.data, event.location,
|
||||
range.numericData1,range.numericData2, range.numericData3,
|
||||
range.numericData4, range.numericData5);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
QmlProfilerFileWriter::QmlProfilerFileWriter(QObject *parent) :
|
||||
QObject(parent),
|
||||
m_startTime(0),
|
||||
|
||||
Reference in New Issue
Block a user