mirror of
https://github.com/boostorg/unordered.git
synced 2025-05-09 23:23:59 +00:00
72 lines
2.3 KiB
Plaintext
72 lines
2.3 KiB
Plaintext
[#stats]
|
|
== Statistics
|
|
|
|
:idprefix: stats_
|
|
|
|
Open-addressing and concurrent containers can be configured to keep running statistics
|
|
of some internal operations affected by the quality of the supplied hash function.
|
|
|
|
=== Synopsis
|
|
|
|
[listing,subs="+macros,+quotes"]
|
|
-----
|
|
struct xref:#stats_stats_summary_type[__stats-summary-type__]
|
|
{
|
|
double average;
|
|
double variance;
|
|
double deviation;
|
|
};
|
|
|
|
struct xref:#stats_insertion_stats_type[__insertion-stats-type__]
|
|
{
|
|
std::size_t count;
|
|
xref:#stats_stats_summary_type[__stats-summary-type__] probe_length;
|
|
};
|
|
|
|
struct xref:stats_lookup_stats_type[__lookup-stats-type__]
|
|
{
|
|
std::size_t count;
|
|
xref:#stats_stats_summary_type[__stats-summary-type__] probe_length;
|
|
xref:#stats_stats_summary_type[__stats-summary-type__] num_comparisons;
|
|
};
|
|
|
|
struct xref:reference/stats.adoc#stats_stats_type[__stats-type__]
|
|
{
|
|
xref:#stats_insertion_stats_type[__insertion-stats-type__] insertion;
|
|
xref:stats_lookup_stats_type[__lookup-stats-type__] successful_lookup,
|
|
unsuccessful_lookup;
|
|
};
|
|
-----
|
|
|
|
==== __stats-summary-type__
|
|
|
|
Provides the average value, variance and standard deviation of a sequence of numerical values.
|
|
|
|
==== __insertion-stats-type__
|
|
|
|
Provides the number of insertion operations performed by a container and
|
|
statistics on the associated __probe length__ (number of
|
|
xref:structures.adoc#structures_open_addressing_containers[bucket groups] accessed per operation).
|
|
|
|
==== __lookup-stats-type__
|
|
|
|
For successful (element found) or unsuccessful (not found) lookup,
|
|
provides the number of operations performed by a container and
|
|
statistics on the associated __probe length__ (number of
|
|
xref:structures.adoc#structures_open_addressing_containers[bucket groups] accessed)
|
|
and number of element comparisons per operation.
|
|
|
|
==== __stats-type__
|
|
|
|
Provides statistics on insertion, successful and unsuccessful lookups performed by a container.
|
|
If the supplied hash function has good quality, then:
|
|
|
|
* Average probe lenghts should be close to 1.0.
|
|
* For successful lookups, the average number of element comparisons should be close to 1.0.
|
|
* For unsuccessful lookups, the average number of element comparisons should be close to 0.0.
|
|
|
|
These statistics can be used to determine if a given hash function
|
|
can be marked as xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[__avalanching__].
|
|
|
|
---
|