mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
[Support/Timer] Make GetMallocUsage() aware of jemalloc.
Differential Revision: D7657 Reviewed by: shankarke, majnemer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229824 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
668fc94ea5
commit
d6f86b8614
@ -163,6 +163,7 @@ if( HAVE_SYS_UIO_H )
|
|||||||
check_symbol_exists(writev sys/uio.h HAVE_WRITEV)
|
check_symbol_exists(writev sys/uio.h HAVE_WRITEV)
|
||||||
endif()
|
endif()
|
||||||
check_symbol_exists(nearbyintf math.h HAVE_NEARBYINTF)
|
check_symbol_exists(nearbyintf math.h HAVE_NEARBYINTF)
|
||||||
|
check_symbol_exists(mallctl malloc_np.h HAVE_MALLCTL)
|
||||||
check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
|
check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
|
||||||
check_symbol_exists(malloc_zone_statistics malloc/malloc.h
|
check_symbol_exists(malloc_zone_statistics malloc/malloc.h
|
||||||
HAVE_MALLOC_ZONE_STATISTICS)
|
HAVE_MALLOC_ZONE_STATISTICS)
|
||||||
|
@ -222,6 +222,9 @@
|
|||||||
/* Define to 1 if you have the `malloc_zone_statistics' function. */
|
/* Define to 1 if you have the `malloc_zone_statistics' function. */
|
||||||
#cmakedefine HAVE_MALLOC_ZONE_STATISTICS ${HAVE_MALLOC_ZONE_STATISTICS}
|
#cmakedefine HAVE_MALLOC_ZONE_STATISTICS ${HAVE_MALLOC_ZONE_STATISTICS}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mallctl` function. */
|
||||||
|
#cmakedefine HAVE_MALLCTL ${HAVE_MALLCTL}
|
||||||
|
|
||||||
/* Define to 1 if you have the `mkdtemp' function. */
|
/* Define to 1 if you have the `mkdtemp' function. */
|
||||||
#cmakedefine HAVE_MKDTEMP ${HAVE_MKDTEMP}
|
#cmakedefine HAVE_MKDTEMP ${HAVE_MKDTEMP}
|
||||||
|
|
||||||
|
@ -210,6 +210,9 @@
|
|||||||
/* Define if mallinfo() is available on this platform. */
|
/* Define if mallinfo() is available on this platform. */
|
||||||
#undef HAVE_MALLINFO
|
#undef HAVE_MALLINFO
|
||||||
|
|
||||||
|
/* Define if mallctl() is available on this plaform. */
|
||||||
|
#undef HAVE_MALLCTL
|
||||||
|
|
||||||
/* Define to 1 if you have the <malloc.h> header file. */
|
/* Define to 1 if you have the <malloc.h> header file. */
|
||||||
#undef HAVE_MALLOC_H
|
#undef HAVE_MALLOC_H
|
||||||
|
|
||||||
|
@ -39,6 +39,9 @@
|
|||||||
!defined(__OpenBSD__) && !defined(__Bitrig__)
|
!defined(__OpenBSD__) && !defined(__Bitrig__)
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(HAVE_MALLCTL)
|
||||||
|
#include <malloc_np.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_MALLOC_MALLOC_H
|
#ifdef HAVE_MALLOC_MALLOC_H
|
||||||
#include <malloc/malloc.h>
|
#include <malloc/malloc.h>
|
||||||
#endif
|
#endif
|
||||||
@ -98,6 +101,13 @@ size_t Process::GetMallocUsage() {
|
|||||||
malloc_statistics_t Stats;
|
malloc_statistics_t Stats;
|
||||||
malloc_zone_statistics(malloc_default_zone(), &Stats);
|
malloc_zone_statistics(malloc_default_zone(), &Stats);
|
||||||
return Stats.size_in_use; // darwin
|
return Stats.size_in_use; // darwin
|
||||||
|
#elif defined(HAVE_MALLCTL)
|
||||||
|
size_t alloc, sz;
|
||||||
|
sz = sizeof(size_t);
|
||||||
|
if (mallctl("stats.allocated", &alloc, &sz, NULL, 0) == 0)
|
||||||
|
return alloc;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
#elif defined(HAVE_SBRK)
|
#elif defined(HAVE_SBRK)
|
||||||
// Note this is only an approximation and more closely resembles
|
// Note this is only an approximation and more closely resembles
|
||||||
// the value returned by mallinfo in the arena field.
|
// the value returned by mallinfo in the arena field.
|
||||||
|
Loading…
Reference in New Issue
Block a user