(svn r20887) -Codechange: Make stat_Hash a method.

This commit is contained in:
alberth 2010-10-02 19:47:21 +00:00
parent 6c31c357d6
commit 6be18d6b37
2 changed files with 10 additions and 5 deletions

View File

@ -303,7 +303,7 @@ void Hash::Delete(bool free_values)
} }
#ifdef HASH_STATS #ifdef HASH_STATS
static void stat_Hash(const Hash *h) void Hash::PrintStatistics() const
{ {
uint used_buckets = 0; uint used_buckets = 0;
uint max_collision = 0; uint max_collision = 0;
@ -312,13 +312,13 @@ static void stat_Hash(const Hash *h)
uint i; uint i;
for (i = 0; i < lengthof(usage); i++) usage[i] = 0; for (i = 0; i < lengthof(usage); i++) usage[i] = 0;
for (i = 0; i < h->num_buckets; i++) { for (i = 0; i < this->num_buckets; i++) {
uint collision = 0; uint collision = 0;
if (h->buckets_in_use[i]) { if (this->buckets_in_use[i]) {
const HashNode *node; const HashNode *node;
used_buckets++; used_buckets++;
for (node = &h->buckets[i]; node != NULL; node = node->next) collision++; for (node = &this->buckets[i]; node != NULL; node = node->next) collision++;
if (collision > max_collision) max_collision = collision; if (collision > max_collision) max_collision = collision;
} }
if (collision >= lengthof(usage)) collision = lengthof(usage) - 1; if (collision >= lengthof(usage)) collision = lengthof(usage) - 1;
@ -333,7 +333,7 @@ static void stat_Hash(const Hash *h)
"Nodes used: %d\n" "Nodes used: %d\n"
"Non empty buckets: %d\n" "Non empty buckets: %d\n"
"Max collision: %d\n", "Max collision: %d\n",
h->num_buckets, h->size, used_buckets, max_collision this->num_buckets, this->size, used_buckets, max_collision
); );
printf("{ "); printf("{ ");
for (i = 0; i <= max_collision; i++) { for (i = 0; i <= max_collision; i++) {

View File

@ -103,6 +103,11 @@ struct Hash {
{ {
return this->size; return this->size;
} }
protected:
#ifdef HASH_STATS
void PrintStatistics() const;
#endif
}; };
#endif /* QUEUE_H */ #endif /* QUEUE_H */