From dc6bc5424886363c9726f434dce99e918e238a11 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Wed, 21 Mar 2012 14:34:54 +0100 Subject: [PATCH] - more memory usage statistics --- src/pool.c | 5 ++++- src/solver.c | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pool.c b/src/pool.c index 3240999..a08a1d3 100644 --- a/src/pool.c +++ b/src/pool.c @@ -350,8 +350,11 @@ pool_createwhatprovides(Pool *pool) unsigned int now; now = solv_timems(0); - POOL_DEBUG(SOLV_DEBUG_STATS, "number of solvables: %d\n", pool->nsolvables); + POOL_DEBUG(SOLV_DEBUG_STATS, "number of solvables: %d, memory used: %d K\n", pool->nsolvables, pool->nsolvables * (int)sizeof(Solvable) / 1024); POOL_DEBUG(SOLV_DEBUG_STATS, "number of ids: %d + %d\n", pool->ss.nstrings, pool->nrels); + POOL_DEBUG(SOLV_DEBUG_STATS, "string memory used: %d K array + %d K data, rel memory used: %d K array\n", pool->ss.nstrings / (1024 / (int)sizeof(Id)), pool->ss.sstrings / 1024, pool->nrels * (int)sizeof(Reldep) / 1024); + if (pool->ss.stringhashmask || pool->relhashmask) + POOL_DEBUG(SOLV_DEBUG_STATS, "string hash memory: %d K, rel hash memory : %d K\n", (pool->ss.stringhashmask + 1) / (int)(1024/sizeof(Id)), (pool->relhashmask + 1) / (int)(1024/sizeof(Id))); pool_freeidhashes(pool); /* XXX: should not be here! */ pool_freewhatprovides(pool); diff --git a/src/solver.c b/src/solver.c index 763a592..dd3d325 100644 --- a/src/solver.c +++ b/src/solver.c @@ -2714,7 +2714,7 @@ solver_solve(Solver *solv, Queue *job) solver_unifyrules(solv); /* remove duplicate rpm rules */ solv->rpmrules_end = solv->nrules; /* mark end of rpm rules */ - POOL_DEBUG(SOLV_DEBUG_STATS, "rpm rule memory usage: %d K\n", solv->nrules * (int)sizeof(Rule) / 1024); + POOL_DEBUG(SOLV_DEBUG_STATS, "rpm rule memory used: %d K\n", solv->nrules * (int)sizeof(Rule) / 1024); POOL_DEBUG(SOLV_DEBUG_STATS, "rpm rule creation took %d ms\n", solv_timems(now)); /* create dup maps if needed. We need the maps early to create our @@ -3010,6 +3010,7 @@ solver_solve(Solver *solv, Queue *job) queue_free(&q); POOL_DEBUG(SOLV_DEBUG_STATS, "%d rpm rules, %d job rules, %d infarch rules, %d dup rules, %d choice rules\n", solv->rpmrules_end - 1, solv->jobrules_end - solv->jobrules, solv->infarchrules_end - solv->infarchrules, solv->duprules_end - solv->duprules, solv->choicerules_end - solv->choicerules); + POOL_DEBUG(SOLV_DEBUG_STATS, "overall rule memory used: %d K\n", solv->nrules * (int)sizeof(Rule) / 1024); /* create weak map */ map_init(&solv->weakrulemap, solv->nrules); -- 2.7.4