Browse Source

* Add statictics for all allocated pools

tags/0.2.7
Vsevolod Stakhov 15 years ago
parent
commit
251d13cc56
3 changed files with 14 additions and 2 deletions
  1. 4
    0
      src/controller.c
  2. 6
    0
      src/mem_pool.c
  3. 4
    2
      src/mem_pool.h

+ 4
- 0
src/controller.c View File

@@ -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,

+ 6
- 0
src/mem_pool.c View File

@@ -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;

+ 4
- 2
src/mem_pool.h View File

@@ -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;


Loading…
Cancel
Save