class Poco::HashStatistic

Overview

HashStatistic class bundles statistical information on the current state of a HashTable. Moreā€¦

#include <HashStatistic.h>

class HashStatistic
{
public:
    // construction

    HashStatistic(
        UInt32 tableSize,
        UInt32 numEntries,
        UInt32 numZeroEntries,
        UInt32 maxEntry,
        std::vector<UInt32> details = std::vector<UInt32>()
        );

    // methods

    UInt32
    maxPositionsOfTable() const;

    UInt32
    numberOfEntries() const;

    UInt32
    numberOfZeroPositions() const;

    double
    avgEntriesPerHash() const;

    double
    avgEntriesPerHashExclZeroEntries() const;

    UInt32
    maxEntriesPerHash() const;

    const std::vector<UInt32>
    detailedEntriesPerHash() const;

    std::string
    toString() const;
};

Detailed Documentation

HashStatistic class bundles statistical information on the current state of a HashTable.

Construction

virtual
~HashStatistic()

Destroys the HashStatistic.

Methods

UInt32
maxPositionsOfTable() const

Returns the maximum number of different hash values possible for the table.

UInt32
numberOfEntries() const

Returns the total number of entries currently stored in the HashTable.

UInt32
numberOfZeroPositions() const

Returns the number of hash positions that contain no entry.

double
avgEntriesPerHash() const

Returns the average number of entries per position in the Hashtable, the higher this value the less efficient performs hashing.

If a large value is returned and getNumberOfZeroPositions also returns a large value, this indicates an inefficient hashing function. If the number of zero entries is low, resizing the HashTable, should be enough to improve performance

double
avgEntriesPerHashExclZeroEntries() const

Same as getAvgEntriesPerHash but hash values that contain no entry are ignored, getAvgEntriesPerHashExclZeroEntries >= getAvgEntriesPerHash will always be true.

UInt32
maxEntriesPerHash() const

Returns the maximum number of entries per hash value found in the current table.

const std::vector<UInt32>
detailedEntriesPerHash() const

Will either be an empty vector or will contain for each possible hash value, the number of entries currently stored.

std::string
toString() const

Converts the whole data structure into a string.