diff options
author | Ulf Hermann <ulf.hermann@digia.com> | 2014-06-12 14:33:05 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-06-12 18:13:45 +0200 |
commit | 4d68155848723a863e59d2ce99142b56c75ab3c6 (patch) | |
tree | 9471400f4f33c8aaa160f311874027f56606bc35 /src/qml/jsruntime/qv4mm.cpp | |
parent | 841f3e6ff78871e5d7fc90666f12756210c7435e (diff) |
Properly initialize heap profiler when starting profiling
Change-Id: Ia994464b2150dc9a9185280ae0e2f8c615393310
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4mm.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4mm.cpp | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4mm.cpp b/src/qml/jsruntime/qv4mm.cpp index 472fa4071a..f3374d48e6 100644 --- a/src/qml/jsruntime/qv4mm.cpp +++ b/src/qml/jsruntime/qv4mm.cpp @@ -451,9 +451,7 @@ void MemoryManager::runGC() mark(); sweep(); } else { - int totalMem = 0; - for (int i = 0; i < m_d->heapChunks.size(); ++i) - totalMem += m_d->heapChunks.at(i).memory.size(); + int totalMem = getAllocatedMem(); QTime t; t.start(); @@ -479,10 +477,10 @@ void MemoryManager::runGC() m_d->totalAlloc = 0; } -uint MemoryManager::getUsedMem() +size_t MemoryManager::getUsedMem() const { - uint usedMem = 0; - for (QVector<Data::Chunk>::iterator i = m_d->heapChunks.begin(), ei = m_d->heapChunks.end(); i != ei; ++i) { + size_t usedMem = 0; + for (QVector<Data::Chunk>::const_iterator i = m_d->heapChunks.begin(), ei = m_d->heapChunks.end(); i != ei; ++i) { char *chunkStart = reinterpret_cast<char *>(i->memory.base()); char *chunkEnd = chunkStart + i->memory.size() - i->chunkSize; for (char *chunk = chunkStart; chunk <= chunkEnd; chunk += i->chunkSize) { @@ -495,6 +493,22 @@ uint MemoryManager::getUsedMem() return usedMem; } +size_t MemoryManager::getAllocatedMem() const +{ + size_t total = 0; + for (int i = 0; i < m_d->heapChunks.size(); ++i) + total += m_d->heapChunks.at(i).memory.size(); + return total; +} + +size_t MemoryManager::getLargeItemsMem() const +{ + size_t total = 0; + for (const Data::LargeItem *i = m_d->largeItems; i != 0; i = i->next) + total += i->size; + return total; +} + MemoryManager::~MemoryManager() { PersistentValuePrivate *persistent = m_persistentValues; |