mem_pool: add GIT_TRACE_MEMPOOL support

Add tracing around initializing and discarding mempools. In discard report
on the amount of memory unused in the current block to help tune setting
the initial_size.

Signed-off-by: Ben Peart <benpeart@microsoft.com>
This commit is contained in:
Ben Peart 2018-10-04 18:10:21 -04:00 коммит произвёл Johannes Schindelin
Родитель f06d91fedf
Коммит c43f50bbaf
1 изменённых файлов: 10 добавлений и 0 удалений

Просмотреть файл

@ -4,7 +4,9 @@
#include "git-compat-util.h"
#include "mem-pool.h"
#include "trace.h"
static struct trace_key trace_mem_pool = TRACE_KEY_INIT(MEMPOOL);
#define BLOCK_GROWTH_SIZE (1024 * 1024 - sizeof(struct mp_block))
/*
@ -62,12 +64,20 @@ void mem_pool_init(struct mem_pool *pool, size_t initial_size)
if (initial_size > 0)
mem_pool_alloc_block(pool, initial_size, NULL);
trace_printf_key(&trace_mem_pool,
"mem_pool (%p): init (%"PRIuMAX") initial size\n",
(void *)pool, (uintmax_t)initial_size);
}
void mem_pool_discard(struct mem_pool *pool, int invalidate_memory)
{
struct mp_block *block, *block_to_free;
trace_printf_key(&trace_mem_pool,
"mem_pool (%p): discard (%"PRIuMAX") unused\n",
(void *)pool,
(uintmax_t)(pool->mp_block->end - pool->mp_block->next_free));
block = pool->mp_block;
while (block)
{