more alloc stats
This commit is contained in:
+27
-2
@@ -3,6 +3,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "types.hpp"
|
||||||
|
#include "macros.hpp"
|
||||||
|
|
||||||
#ifdef USE_FTB_MALLOC
|
#ifdef USE_FTB_MALLOC
|
||||||
namespace Ftb_Malloc_Stats {
|
namespace Ftb_Malloc_Stats {
|
||||||
@@ -21,8 +22,8 @@ namespace Ftb_Malloc_Stats {
|
|||||||
|
|
||||||
void print_malloc_stats() {
|
void print_malloc_stats() {
|
||||||
printf("\n"
|
printf("\n"
|
||||||
"Malloc Stats:\n"
|
"Global Malloc Stats:\n"
|
||||||
"-------------\n"
|
"--------------------\n"
|
||||||
" ftb_malloc calls: %u\n"
|
" ftb_malloc calls: %u\n"
|
||||||
" ftb_free calls: %u\n"
|
" ftb_free calls: %u\n"
|
||||||
" ftb_realloc calls: %u\n"
|
" ftb_realloc calls: %u\n"
|
||||||
@@ -34,6 +35,30 @@ void print_malloc_stats() {
|
|||||||
Ftb_Malloc_Stats::calloc_calls,
|
Ftb_Malloc_Stats::calloc_calls,
|
||||||
Ftb_Malloc_Stats::alloca_calls);
|
Ftb_Malloc_Stats::alloca_calls);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define profile_mallocs \
|
||||||
|
MPP_DECLARE(0, u32 MPI_LABEL(profile_mallocs, old_malloc_calls) = Ftb_Malloc_Stats::malloc_calls) \
|
||||||
|
MPP_DECLARE(1, u32 MPI_LABEL(profile_mallocs, old_free_calls) = Ftb_Malloc_Stats::free_calls) \
|
||||||
|
MPP_DECLARE(2, u32 MPI_LABEL(profile_mallocs, old_realloc_calls) = Ftb_Malloc_Stats::realloc_calls) \
|
||||||
|
MPP_DECLARE(3, u32 MPI_LABEL(profile_mallocs, old_calloc_calls) = Ftb_Malloc_Stats::calloc_calls) \
|
||||||
|
MPP_DECLARE(4, u32 MPI_LABEL(profile_mallocs, old_alloca_calls) = Ftb_Malloc_Stats::alloca_calls) \
|
||||||
|
MPP_AFTER(5, { \
|
||||||
|
printf("\n" \
|
||||||
|
"Local Malloc Stats: (%s %s %d)\n" \
|
||||||
|
"-------------------\n" \
|
||||||
|
" ftb_malloc calls: %u\n" \
|
||||||
|
" ftb_free calls: %u\n" \
|
||||||
|
" ftb_realloc calls: %u\n" \
|
||||||
|
" ftb_calloc calls: %u\n" \
|
||||||
|
" ftb_alloca calls: %u\n" , \
|
||||||
|
__func__, __FILE__, __LINE__, \
|
||||||
|
Ftb_Malloc_Stats::malloc_calls - MPI_LABEL(profile_mallocs, old_malloc_calls) , \
|
||||||
|
Ftb_Malloc_Stats::free_calls - MPI_LABEL(profile_mallocs, old_free_calls) , \
|
||||||
|
Ftb_Malloc_Stats::realloc_calls - MPI_LABEL(profile_mallocs, old_realloc_calls) , \
|
||||||
|
Ftb_Malloc_Stats::calloc_calls - MPI_LABEL(profile_mallocs, old_calloc_calls) , \
|
||||||
|
Ftb_Malloc_Stats::alloca_calls - MPI_LABEL(profile_mallocs, old_alloca_calls)); \
|
||||||
|
})
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# define ftb_malloc malloc
|
# define ftb_malloc malloc
|
||||||
# define ftb_realloc realloc
|
# define ftb_realloc realloc
|
||||||
|
|||||||
+37
@@ -13,6 +13,43 @@
|
|||||||
#define label(x, y) concat(x, y)
|
#define label(x, y) concat(x, y)
|
||||||
#define line_label(x) label(x, __LINE__)
|
#define line_label(x) label(x, __LINE__)
|
||||||
|
|
||||||
|
#define MPI_LABEL(id1,id2) \
|
||||||
|
concat(MPI_LABEL_ ## id1 ## _ ## id2 ## _, __LINE__)
|
||||||
|
|
||||||
|
#define MPP_DECLARE(labid, declaration) \
|
||||||
|
if (0) \
|
||||||
|
; \
|
||||||
|
else \
|
||||||
|
for (declaration;;) \
|
||||||
|
if (1) { \
|
||||||
|
goto MPI_LABEL(labid, body); \
|
||||||
|
MPI_LABEL(labid, done): break; \
|
||||||
|
} else \
|
||||||
|
while (1) \
|
||||||
|
if (1) \
|
||||||
|
goto MPI_LABEL(labid, done); \
|
||||||
|
else \
|
||||||
|
MPI_LABEL(labid, body):
|
||||||
|
|
||||||
|
#define MPP_BEFORE(labid,before) \
|
||||||
|
if (1) { \
|
||||||
|
before; \
|
||||||
|
goto MPI_LABEL(labid, body); \
|
||||||
|
} else \
|
||||||
|
MPI_LABEL(labid, body):
|
||||||
|
|
||||||
|
#define MPP_AFTER(labid,after) \
|
||||||
|
if (1) \
|
||||||
|
goto MPI_LABEL(labid, body); \
|
||||||
|
else \
|
||||||
|
while (1) \
|
||||||
|
if (1) { \
|
||||||
|
after; \
|
||||||
|
break; \
|
||||||
|
} else \
|
||||||
|
MPI_LABEL(labid, body):
|
||||||
|
|
||||||
|
|
||||||
// #ifndef min
|
// #ifndef min
|
||||||
// #define min(a, b) ((a) < (b)) ? (a) : (b)
|
// #define min(a, b) ((a) < (b)) ? (a) : (b)
|
||||||
// #endif
|
// #endif
|
||||||
|
|||||||
Reference in New Issue
Block a user