diff options
author | Ulf Hermann <ulf.hermann@digia.com> | 2014-06-16 13:33:33 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@digia.com> | 2014-08-12 10:16:40 +0200 |
commit | 74f483f23140aaf77ab062bd53478cbb949fd2e2 (patch) | |
tree | 4f4ac704c96ec506de8c33829c534bede2a5ddbc /tools/qmlprofiler/qmlprofilerdata.cpp | |
parent | 99d0921e2d2a20b956cab172d472f7c369c05008 (diff) |
Write memory events into tracefiles generated by qmlprofiler
Change-Id: Ic01505194f29967ed1aad16fe36e14dc5532ae25
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tools/qmlprofiler/qmlprofilerdata.cpp')
-rw-r--r-- | tools/qmlprofiler/qmlprofilerdata.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/qmlprofiler/qmlprofilerdata.cpp b/tools/qmlprofiler/qmlprofilerdata.cpp index bf2d05ed7b..85efab94cd 100644 --- a/tools/qmlprofiler/qmlprofilerdata.cpp +++ b/tools/qmlprofiler/qmlprofilerdata.cpp @@ -378,6 +378,24 @@ void QmlProfilerData::addPixmapCacheEvent(QQmlProfilerDefinitions::PixmapEventTy d->startInstanceList.append(rangeEventStartInstance); } +void QmlProfilerData::addMemoryEvent(QQmlProfilerService::MemoryType type, qint64 time, + qint64 size) +{ + setState(AcquiringData); + QString eventHashStr = QString::fromLatin1("MemoryAllocation:%1").arg(type); + QmlRangeEventData *newEvent; + if (d->eventDescriptions.contains(eventHashStr)) { + newEvent = d->eventDescriptions[eventHashStr]; + } else { + newEvent = new QmlRangeEventData(eventHashStr, type, eventHashStr, QmlEventLocation(), + QString(), QQmlProfilerService::MemoryAllocation, + QQmlProfilerService::MaximumRangeType); + d->eventDescriptions.insert(eventHashStr, newEvent); + } + QmlRangeEventStartInstance rangeEventStartInstance(time, size, 0, 0, 0, 0, newEvent); + d->startInstanceList.append(rangeEventStartInstance); +} + QString QmlProfilerData::rootEventName() { return tr("<program>"); @@ -589,6 +607,9 @@ bool QmlProfilerData::save(const QString &filename) else if (eventData->message == QQmlProfilerService::SceneGraphFrame) stream.writeTextElement(QStringLiteral("sgEventType"), QString::number((int)eventData->detailType)); + else if (eventData->message == QQmlProfilerService::MemoryAllocation) + stream.writeTextElement(QStringLiteral("memoryEventType"), + QString::number((int)eventData->detailType)); stream.writeEndElement(); } stream.writeEndElement(); // eventData @@ -636,6 +657,8 @@ bool QmlProfilerData::save(const QString &filename) if (event.numericData5 > 0) stream.writeAttribute(QStringLiteral("timing5"), QString::number(event.numericData5)); + } else if (event.data->message == QQmlProfilerService::MemoryAllocation) { + stream.writeAttribute(QStringLiteral("amount"), QString::number(event.numericData1)); } stream.writeEndElement(); } |