aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprofiler
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2017-02-21 11:45:33 +0100
committerUlf Hermann <ulf.hermann@qt.io>2017-02-24 11:55:34 +0000
commit2b75df21393911faf6a2e2f24eb1eb29a149f603 (patch)
tree2b35b8ceb62d8281772f3df378a925cea38b3a6f /src/plugins/qmlprofiler
parentbf69eb9467b273357b15b8527bb0189d9841792f (diff)
QmlProfiler: Simplify buffer handling when loading trace
The inserting of events into the buffer is not the bottleneck here. The book keeping is probably more expensive than just always using all the events contained in a chuck from the file for one batch. Change-Id: I75a936fdf9e3a1d9675b44d67b98f14594f87ffd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qmlprofiler')
-rw-r--r--src/plugins/qmlprofiler/qmlprofilertracefile.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/qmlprofiler/qmlprofilertracefile.cpp b/src/plugins/qmlprofiler/qmlprofilertracefile.cpp
index f2fc6a8a93..2d39fc7e77 100644
--- a/src/plugins/qmlprofiler/qmlprofilertracefile.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertracefile.cpp
@@ -243,15 +243,13 @@ void QmlProfilerFileReader::loadQzt(QIODevice *device)
updateProgress(device);
}
- const int eventBufferLength = 1024;
- QVector<QmlEvent> eventBuffer(eventBufferLength);
- int eventBufferIndex = 0;
+ QVector<QmlEvent> eventBuffer;
while (!stream.atEnd() && !isCanceled()) {
stream >> data;
buffer.setData(qUncompress(data));
buffer.open(QIODevice::ReadOnly);
while (!buffer.atEnd() && !isCanceled()) {
- QmlEvent &event = eventBuffer[eventBufferIndex];
+ QmlEvent event;
bufferStream >> event;
if (bufferStream.status() == QDataStream::Ok) {
if (event.typeIndex() >= m_eventTypes.length()) {
@@ -267,11 +265,10 @@ void QmlProfilerFileReader::loadQzt(QIODevice *device)
} else {
Q_UNREACHABLE();
}
- if (++eventBufferIndex == eventBufferLength) {
- emit qmlEventsLoaded(eventBuffer);
- eventBufferIndex = 0;
- }
+ eventBuffer.append(event);
}
+ emit qmlEventsLoaded(eventBuffer);
+ eventBuffer.clear();
buffer.close();
updateProgress(device);
}
@@ -279,7 +276,6 @@ void QmlProfilerFileReader::loadQzt(QIODevice *device)
if (isCanceled()) {
emit canceled();
} else {
- eventBuffer.resize(eventBufferIndex);
emit qmlEventsLoaded(eventBuffer);
emit success();
}