diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-03-26 18:29:45 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-03-26 18:29:45 +0300 |
commit | 251d13cc56cdf625bafac9db008d85abe0fa893c (patch) | |
tree | 5b77b7055bf9e7da9a09d762e84cfaabed58131f | |
parent | bd1213bba483c40213c7b24c7ded1cbf0c8cd5b1 (diff) | |
download | rspamd-251d13cc56cdf625bafac9db008d85abe0fa893c.tar.gz rspamd-251d13cc56cdf625bafac9db008d85abe0fa893c.zip |
* Add statictics for all allocated pools
-rw-r--r-- | src/controller.c | 4 | ||||
-rw-r--r-- | src/mem_pool.c | 6 | ||||
-rw-r--r-- | src/mem_pool.h | 6 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/controller.c b/src/controller.c index 8a56b7f5b..d82cc726e 100644 --- a/src/controller.c +++ b/src/controller.c @@ -194,6 +194,10 @@ process_command (struct controller_command *cmd, char **cmd_args, struct control session->worker->srv->stat->connections_count); r += snprintf (out_buf + r, sizeof (out_buf) - r, "Control connections count: %u" CRLF, session->worker->srv->stat->control_connections_count); + r += snprintf (out_buf + r, sizeof (out_buf) - r, "Pools allocated: %ld" CRLF, + (long int)mem_st.pools_allocated); + r += snprintf (out_buf + r, sizeof (out_buf) - r, "Pools freed: %ld" CRLF, + (long int)mem_st.pools_freed); r += snprintf (out_buf + r, sizeof (out_buf) - r, "Bytes allocated: %ld" CRLF, (long int)mem_st.bytes_allocated); r += snprintf (out_buf + r, sizeof (out_buf) - r, "Memory chunks allocated: %ld" CRLF, diff --git a/src/mem_pool.c b/src/mem_pool.c index 84ebe9a79..ab96483f0 100644 --- a/src/mem_pool.c +++ b/src/mem_pool.c @@ -142,6 +142,8 @@ memory_pool_new (memory_pool_ssize_t size) new->first_pool = new->cur_pool; new->destructors = NULL; + mem_pool_stat->pools_allocated ++; + return new; } @@ -387,12 +389,16 @@ memory_pool_delete (memory_pool_t *pool) STAT_UNLOCK (); } + mem_pool_stat->pools_freed ++; g_free (pool); } void memory_pool_stat (memory_pool_stat_t *st) { + st->pools_allocated = mem_pool_stat->pools_allocated; + st->pools_freed = mem_pool_stat->pools_freed; + st->shared_chunks_allocated = mem_pool_stat->shared_chunks_allocated; st->bytes_allocated = mem_pool_stat->bytes_allocated; st->chunks_allocated = mem_pool_stat->chunks_allocated; st->shared_chunks_allocated = mem_pool_stat->shared_chunks_allocated; diff --git a/src/mem_pool.h b/src/mem_pool.h index d332a2c11..0754afd7b 100644 --- a/src/mem_pool.h +++ b/src/mem_pool.h @@ -68,9 +68,11 @@ typedef struct memory_pool_s { * Statistics structure */ typedef struct memory_pool_stat_s { - memory_pool_ssize_t bytes_allocated; /**< bytes that are allocated with pool allocator */ + memory_pool_ssize_t pools_allocated; /**< total number of allocated pools */ + memory_pool_ssize_t pools_freed; /**< number of freed pools */ + memory_pool_ssize_t bytes_allocated; /**< bytes that are allocated with pool allocator */ memory_pool_ssize_t chunks_allocated; /**< number of chunks that are allocated */ - memory_pool_ssize_t shared_chunks_allocated; /**< shared chunks allocated */ + memory_pool_ssize_t shared_chunks_allocated; /**< shared chunks allocated */ memory_pool_ssize_t chunks_freed; /**< chunks freed */ } memory_pool_stat_t; |