QmlProfiler: Clean up MemoryUsageModel

Don't reimplement locationFromTypeId, make methods public when they are
public in the base class, remove redundant QVariant ctors, inline
memoryTypeName() into the only place where it's used.

Change-Id: I5d780cf27c90a277c13b117c25c80ccce5a4182b
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2016-06-03 14:02:51 +02:00
parent bcbfd93ee7
commit c4079d6ae7
2 changed files with 16 additions and 36 deletions

View File

@@ -71,20 +71,7 @@ float MemoryUsageModel::relativeHeight(int index) const
QVariantMap MemoryUsageModel::location(int index) const QVariantMap MemoryUsageModel::location(int index) const
{ {
static const QLatin1String file("file"); return locationFromTypeId(index);
static const QLatin1String line("line");
static const QLatin1String column("column");
QVariantMap result;
const QmlEventLocation &location =
modelManager()->qmlModel()->eventTypes().at(m_data[index].typeId).location;
result.insert(file, location.filename);
result.insert(line, location.line);
result.insert(column, location.column);
return result;
} }
QVariantList MemoryUsageModel::labels() const QVariantList MemoryUsageModel::labels() const
@@ -92,13 +79,13 @@ QVariantList MemoryUsageModel::labels() const
QVariantList result; QVariantList result;
QVariantMap element; QVariantMap element;
element.insert(QLatin1String("description"), QVariant(tr("Memory Allocation"))); element.insert(QLatin1String("description"), tr("Memory Allocation"));
element.insert(QLatin1String("id"), QVariant(HeapPage)); element.insert(QLatin1String("id"), HeapPage);
result << element; result << element;
element.clear(); element.clear();
element.insert(QLatin1String("description"), QVariant(tr("Memory Usage"))); element.insert(QLatin1String("description"), tr("Memory Usage"));
element.insert(QLatin1String("id"), QVariant(SmallItem)); element.insert(QLatin1String("id"), SmallItem);
result << element; result << element;
return result; return result;
@@ -114,16 +101,23 @@ QVariantMap MemoryUsageModel::details(int index) const
else else
result.insert(QLatin1String("displayName"), tr("Memory Freed")); result.insert(QLatin1String("displayName"), tr("Memory Freed"));
result.insert(tr("Total"), QString::fromLatin1("%1 bytes").arg(ev->size)); result.insert(tr("Total"), tr("%1 bytes").arg(ev->size));
if (ev->allocations > 0) { if (ev->allocations > 0) {
result.insert(tr("Allocated"), QString::fromLatin1("%1 bytes").arg(ev->allocated)); result.insert(tr("Allocated"), tr("%1 bytes").arg(ev->allocated));
result.insert(tr("Allocations"), QString::number(ev->allocations)); result.insert(tr("Allocations"), QString::number(ev->allocations));
} }
if (ev->deallocations > 0) { if (ev->deallocations > 0) {
result.insert(tr("Deallocated"), QString::fromLatin1("%1 bytes").arg(-ev->deallocated)); result.insert(tr("Deallocated"), tr("%1 bytes").arg(-ev->deallocated));
result.insert(tr("Deallocations"), QString::number(ev->deallocations)); result.insert(tr("Deallocations"), QString::number(ev->deallocations));
} }
result.insert(tr("Type"), QVariant(memoryTypeName(selectionId(index)))); QString memoryTypeName;
switch (selectionId(index)) {
case HeapPage: memoryTypeName = tr("Heap Allocation"); break;
case LargeItem: memoryTypeName = tr("Large Item Allocation"); break;
case SmallItem: memoryTypeName = tr("Heap Usage"); break;
default: Q_UNREACHABLE();
}
result.insert(tr("Type"), memoryTypeName);
result.insert(tr("Location"), result.insert(tr("Location"),
modelManager()->qmlModel()->eventTypes().at(ev->typeId).displayName); modelManager()->qmlModel()->eventTypes().at(ev->typeId).displayName);
@@ -225,17 +219,6 @@ void MemoryUsageModel::clear()
QmlProfilerTimelineModel::clear(); QmlProfilerTimelineModel::clear();
} }
QString MemoryUsageModel::memoryTypeName(int type)
{
switch (type) {
case HeapPage: return tr("Heap Allocation");
case LargeItem: return tr("Large Item Allocation");
case SmallItem: return tr("Heap Usage");
case MaximumMemoryType: return tr("Total");
default: return tr("Unknown");
}
}
MemoryUsageModel::MemoryAllocationItem::MemoryAllocationItem(int typeId, qint64 baseAmount) : MemoryUsageModel::MemoryAllocationItem::MemoryAllocationItem(int typeId, qint64 baseAmount) :
size(baseAmount), allocated(0), deallocated(0), allocations(0), deallocations(0), size(baseAmount), allocated(0), deallocated(0), allocations(0), deallocations(0),
typeId(typeId) typeId(typeId)

View File

@@ -67,7 +67,6 @@ public:
QVariantList labels() const override; QVariantList labels() const override;
QVariantMap details(int index) const override; QVariantMap details(int index) const override;
protected:
bool accepted(const QmlEventType &type) const override; bool accepted(const QmlEventType &type) const override;
void loadEvent(const QmlEvent &event, const QmlEventType &type) override; void loadEvent(const QmlEvent &event, const QmlEventType &type) override;
void finalize() override; void finalize() override;
@@ -82,8 +81,6 @@ private:
qint64 startTime; qint64 startTime;
}; };
static QString memoryTypeName(int type);
QVector<MemoryAllocationItem> m_data; QVector<MemoryAllocationItem> m_data;
QStack<RangeStackFrame> m_rangeStack; QStack<RangeStackFrame> m_rangeStack;
qint64 m_maxSize = 1; qint64 m_maxSize = 1;