Files
MuditaOS/module-os/memory/UserMemStatsLogger.hpp
Adam Wulkiewicz d2bf42d411 [BH-1655] Fix memory leaks in clock faces and shortcuts
Disable libphonenumber initialization since it is not used in Harmony
but takes around 1.4MB of memory

Add heap allocation statistics
2023-03-17 12:44:30 +01:00

35 lines
1.1 KiB
C++

// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <log/log.hpp>
#include "usermem.h"
struct UserMemStatsLogger
{
#if DEBUG_HEAP_ALLOCATIONS == 1
UserMemStatsLogger()
{
usermemResetStatistics();
freeHeapSize1 = usermemGetFreeHeapSize();
}
~UserMemStatsLogger()
{
size_t freeHeapSize2 = usermemGetFreeHeapSize();
size_t allocationsCount = usermemGetAllocationsCount();
size_t deallocationsCount = usermemGetDeallocationsCount();
size_t allocatedMin = usermemGetAllocatedMin();
size_t allocatedMax = usermemGetAllocatedMax();
size_t allocatedSum = usermemGetAllocatedSum();
LOG_INFO("\nFree before: %zu\nFree after: %zu\n# allocations: %zu\n# deallocations: %zu\nSmallest block: %zu\nBiggest block: %zu\nAllocated: %zu",
freeHeapSize1, freeHeapSize2, allocationsCount, deallocationsCount, allocatedMin, allocatedMax, allocatedSum);
}
private:
size_t freeHeapSize1;
#endif
};