~aleteoryx/muditaos

ref: sign_test muditaos/module-os/memory/UserMemStatsLogger.hpp -rw-r--r-- 1.1 KiB
a217eeb3 — Dawid Wojtas [BH-2024] Fix lack of alarm directory after updating software 1 year, 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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
};