From 00056480d4b7a19d70c22b9664909b3506df3a23 Mon Sep 17 00:00:00 2001 From: Yu Qing Date: Fri, 6 Nov 2015 10:34:51 +0800 Subject: [PATCH] mblock stat output alloc_bytes --- src/fast_allocator.c | 5 +++++ src/fast_mblock.c | 34 +++++++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/fast_allocator.c b/src/fast_allocator.c index ef68ffa..8b6f32c 100644 --- a/src/fast_allocator.c +++ b/src/fast_allocator.c @@ -223,6 +223,11 @@ int fast_allocator_init_ex(struct fast_allocator_context *acontext, } } + if (result != 0) + { + return result; + } + if ((result=allocator_array_check_capacity(acontext, 1)) != 0) { return result; diff --git a/src/fast_mblock.c b/src/fast_mblock.c index 3c720ab..254f4de 100644 --- a/src/fast_mblock.c +++ b/src/fast_mblock.c @@ -176,6 +176,18 @@ int fast_mblock_manager_stat(struct fast_mblock_info *stats, return result; } +//desc order +static int fast_mblock_info_cmp(const void *p1, const void *p2) +{ + struct fast_mblock_info *pStat1; + struct fast_mblock_info *pStat2; + + pStat1 = (struct fast_mblock_info *)p1; + pStat2 = (struct fast_mblock_info *)p2; + return GET_BLOCK_SIZE(*pStat2) * pStat2->element_total_count - + GET_BLOCK_SIZE(*pStat1) * pStat1->element_total_count; +} + int fast_mblock_manager_stat_print(const bool hide_empty) { int result; @@ -205,14 +217,17 @@ int fast_mblock_manager_stat_print(const bool hide_empty) { int64_t alloc_mem; int64_t used_mem; + int64_t amem; char alloc_mem_str[32]; char used_mem_str[32]; int block_size; + qsort(stats, count, sizeof(struct fast_mblock_info), fast_mblock_info_cmp); + alloc_mem = 0; used_mem = 0; - logInfo("%32s %12s %16s %10s %10s %14s %12s %12s", "name", "element_size", - "instance_count", "trunc_alloc", "trunk_used", + logInfo("%20s %12s %16s %12s %10s %10s %14s %12s %12s", "name", "element_size", + "instance_count", "alloc_bytes", "trunc_alloc", "trunk_used", "element_alloc", "element_used", "used_ratio"); stat_end = stats + count; for (pStat=stats; pStatelement_total_count > 0) { block_size = GET_BLOCK_SIZE(*pStat); - alloc_mem += block_size * pStat->element_total_count; + amem = block_size * pStat->element_total_count; + alloc_mem += amem; used_mem += block_size * pStat->element_used_count; } - else if (hide_empty) + else { - continue; + amem = 0; + if (hide_empty) + { + continue; + } } - logInfo("%32s %12d %16d %10d %10d %14d %12d %11.2f%%", pStat->name, - pStat->element_size, pStat->instance_count, + logInfo("%20s %12d %16d %12d %10d %10d %14d %12d %11.2f%%", pStat->name, + pStat->element_size, pStat->instance_count, amem, pStat->trunk_total_count, pStat->trunk_used_count, pStat->element_total_count, pStat->element_used_count, pStat->element_total_count > 0 ? 100.00 * (double)