blob: 0b4b28a1b9d28bda7741755733d11c96a79e596e [file] [log] [blame]
surmeh013537c2c2018-05-18 16:31:43 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
surmeh013537c2c2018-05-18 16:31:43 +01004//
5
6#ifdef ARMNN_HEAP_PROFILING_ENABLED
7
8#include "HeapProfiling.hpp"
9#include "gperftools/heap-profiler.h"
10#include <sstream>
11#include <cstdlib>
12
13namespace armnnUtils
14{
15
16ScopedHeapProfiler::ScopedHeapProfiler(const std::string & tag)
17: m_Location("/tmp")
18, m_Tag(tag)
19{
20 char * locationFromEnv = ::getenv(ARMNN_HEAP_PROFILE_DUMP_DIR);
21 if (locationFromEnv)
22 {
23 m_Location = locationFromEnv;
24 }
25 std::stringstream ss;
26 ss << m_Location << "/" << m_Tag << ".hprof";
27 HeapProfilerStart(ss.str().c_str());
28 HeapProfilerDump(m_Tag.c_str());
29}
30
31ScopedHeapProfiler::~ScopedHeapProfiler()
32{
33 HeapProfilerDump(m_Tag.c_str());
34}
35
36} // namespace armnnUtils
37
38#endif // ARMNN_HEAP_PROFILING_ENABLED