diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2017-02-21 11:45:33 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2017-02-24 11:55:34 +0000 |
commit | 2b75df21393911faf6a2e2f24eb1eb29a149f603 (patch) | |
tree | 2b35b8ceb62d8281772f3df378a925cea38b3a6f /src/plugins/qmlprofiler | |
parent | bf69eb9467b273357b15b8527bb0189d9841792f (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.cpp | 14 |
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(); } |