mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[Support/Timer] Make GetMallocUsage() aware of jemalloc.
Differential Revision: D7657 Reviewed by: shankarke, majnemer llvm-svn: 229824
This commit is contained in:
parent
ed5c438a1c
commit
0e29a94c44
@ -163,6 +163,7 @@ if( HAVE_SYS_UIO_H )
|
||||
check_symbol_exists(writev sys/uio.h HAVE_WRITEV)
|
||||
endif()
|
||||
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(malloc_zone_statistics malloc/malloc.h
|
||||
HAVE_MALLOC_ZONE_STATISTICS)
|
||||
|
@ -222,6 +222,9 @@
|
||||
/* Define to 1 if you have the `malloc_zone_statistics' function. */
|
||||
#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. */
|
||||
#cmakedefine HAVE_MKDTEMP ${HAVE_MKDTEMP}
|
||||
|
||||
|
@ -210,6 +210,9 @@
|
||||
/* Define if mallinfo() is available on this platform. */
|
||||
#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. */
|
||||
#undef HAVE_MALLOC_H
|
||||
|
||||
|
@ -39,6 +39,9 @@
|
||||
!defined(__OpenBSD__) && !defined(__Bitrig__)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
#if defined(HAVE_MALLCTL)
|
||||
#include <malloc_np.h>
|
||||
#endif
|
||||
#ifdef HAVE_MALLOC_MALLOC_H
|
||||
#include <malloc/malloc.h>
|
||||
#endif
|
||||
@ -98,6 +101,13 @@ size_t Process::GetMallocUsage() {
|
||||
malloc_statistics_t Stats;
|
||||
malloc_zone_statistics(malloc_default_zone(), &Stats);
|
||||
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)
|
||||
// Note this is only an approximation and more closely resembles
|
||||
// the value returned by mallinfo in the arena field.
|
||||
|
Loading…
Reference in New Issue
Block a user