#include <string>#include <type_traits>#include <typeindex>#include <utility>#include <vector>#include "absl/base/attributes.h"#include "absl/container/flat_hash_set.h"#include "absl/hash/hash.h"#include "absl/random/random.h"#include "absl/strings/cord.h"#include "absl/strings/cord_test_helpers.h"#include "absl/strings/string_view.h"#include "benchmark/benchmark.h"
Go to the source code of this file.
Classes | |
| struct | FastUnorderedSet< T > |
| struct | PodRand< T > |
| struct | StringRand< N > |
| struct | TypeErasedAbslHash< T > |
| class | TypeErasedInterface |
| class | TypeErasedAbslHash< T >::Wrapper |
Macros | |
| #define | MAKE_BENCHMARK(hash, name, ...) |
| #define | MAKE_LATENCY_BENCHMARK(hash, name, ...) |
Typedefs | |
| template<typename T > | |
| using | AbslHash = absl::Hash< T > |
Functions | |
| absl::Cord | FlatCord (size_t size) |
| template<typename T > | |
| absl::flat_hash_set< T > | FlatHashSet (size_t count) |
| absl::Cord | FragmentedCord (size_t size) |
| MAKE_BENCHMARK (AbslHash, Cord_Flat_0, absl::Cord()) | |
| MAKE_BENCHMARK (AbslHash, Cord_Flat_10, FlatCord(10)) | |
| MAKE_BENCHMARK (AbslHash, Cord_Flat_200, FlatCord(200)) | |
| MAKE_BENCHMARK (AbslHash, Cord_Flat_30, FlatCord(30)) | |
| MAKE_BENCHMARK (AbslHash, Cord_Flat_5000, FlatCord(5000)) | |
| MAKE_BENCHMARK (AbslHash, Cord_Flat_90, FlatCord(90)) | |
| MAKE_BENCHMARK (AbslHash, Cord_Fragmented_200, FragmentedCord(200)) | |
| MAKE_BENCHMARK (AbslHash, Cord_Fragmented_5000, FragmentedCord(5000)) | |
| MAKE_BENCHMARK (AbslHash, Double, 1.2) | |
| MAKE_BENCHMARK (AbslHash, DoubleZero, 0.0) | |
| MAKE_BENCHMARK (AbslHash, FastUnorderedSetDouble_1000, FastUnorderedSet< double >(1000)) | |
| MAKE_BENCHMARK (AbslHash, FastUnorderedSetInt64_1000, FastUnorderedSet< int64_t >(1000)) | |
| MAKE_BENCHMARK (AbslHash, FlatHashSetDouble_10, FlatHashSet< double >(10)) | |
| MAKE_BENCHMARK (AbslHash, FlatHashSetDouble_100, FlatHashSet< double >(100)) | |
| MAKE_BENCHMARK (AbslHash, FlatHashSetDouble_1000, FlatHashSet< double >(1000)) | |
| MAKE_BENCHMARK (AbslHash, FlatHashSetInt64_10, FlatHashSet< int64_t >(10)) | |
| MAKE_BENCHMARK (AbslHash, FlatHashSetInt64_100, FlatHashSet< int64_t >(100)) | |
| MAKE_BENCHMARK (AbslHash, FlatHashSetInt64_1000, FlatHashSet< int64_t >(1000)) | |
| MAKE_BENCHMARK (AbslHash, Int32, int32_t{}) | |
| MAKE_BENCHMARK (AbslHash, Int64, int64_t{}) | |
| MAKE_BENCHMARK (AbslHash, PairInt32Int32, std::pair< int32_t, int32_t >{}) | |
| MAKE_BENCHMARK (AbslHash, PairInt64Int64, std::pair< int64_t, int64_t >{}) | |
| MAKE_BENCHMARK (AbslHash, PairStringString_0, std::make_pair(std::string(), std::string())) | |
| MAKE_BENCHMARK (AbslHash, PairStringString_10, std::make_pair(std::string(10, 'a'), std::string(10, 'b'))) | |
| MAKE_BENCHMARK (AbslHash, PairStringString_200, std::make_pair(std::string(200, 'a'), std::string(200, 'b'))) | |
| MAKE_BENCHMARK (AbslHash, PairStringString_30, std::make_pair(std::string(30, 'a'), std::string(30, 'b'))) | |
| MAKE_BENCHMARK (AbslHash, PairStringString_5000, std::make_pair(std::string(5000, 'a'), std::string(5000, 'b'))) | |
| MAKE_BENCHMARK (AbslHash, PairStringString_90, std::make_pair(std::string(90, 'a'), std::string(90, 'b'))) | |
| MAKE_BENCHMARK (AbslHash, String_0, std::string()) | |
| MAKE_BENCHMARK (AbslHash, String_10, std::string(10, 'a')) | |
| MAKE_BENCHMARK (AbslHash, String_200, std::string(200, 'a')) | |
| MAKE_BENCHMARK (AbslHash, String_30, std::string(30, 'a')) | |
| MAKE_BENCHMARK (AbslHash, String_5000, std::string(5000, 'a')) | |
| MAKE_BENCHMARK (AbslHash, String_90, std::string(90, 'a')) | |
| MAKE_BENCHMARK (AbslHash, TupleInt32BoolInt64, std::tuple< int32_t, bool, int64_t >{}) | |
| MAKE_BENCHMARK (AbslHash, VectorDouble_10, Vector< double >(10)) | |
| MAKE_BENCHMARK (AbslHash, VectorDouble_100, Vector< double >(100)) | |
| MAKE_BENCHMARK (AbslHash, VectorDouble_1000, Vector< double >(1000)) | |
| MAKE_BENCHMARK (AbslHash, VectorInt64_10, Vector< int64_t >(10)) | |
| MAKE_BENCHMARK (AbslHash, VectorInt64_100, Vector< int64_t >(100)) | |
| MAKE_BENCHMARK (AbslHash, VectorInt64_1000, Vector< int64_t >(1000)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FastUnorderedSetDouble_1000, FastUnorderedSet< double >(1000)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FastUnorderedSetInt64_1000, FastUnorderedSet< int64_t >(1000)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FlatHashSetDouble_10, FlatHashSet< double >(10)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FlatHashSetDouble_100, FlatHashSet< double >(100)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FlatHashSetDouble_1000, FlatHashSet< double >(1000)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FlatHashSetInt64_10, FlatHashSet< int64_t >(10)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FlatHashSetInt64_100, FlatHashSet< int64_t >(100)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, FlatHashSetInt64_1000, FlatHashSet< int64_t >(1000)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, Int32, int32_t{}) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, Int64, int64_t{}) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, PairInt32Int32, std::pair< int32_t, int32_t >{}) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, PairInt64Int64, std::pair< int64_t, int64_t >{}) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, String_0, std::string()) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, String_10, std::string(10, 'a')) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, String_200, std::string(200, 'a')) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, String_30, std::string(30, 'a')) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, String_5000, std::string(5000, 'a')) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, String_90, std::string(90, 'a')) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, TupleInt32BoolInt64, std::tuple< int32_t, bool, int64_t >{}) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, VectorDouble_10, std::vector< double >(10, 1.1)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, VectorDouble_100, std::vector< double >(100, 1.1)) | |
| MAKE_BENCHMARK (TypeErasedAbslHash, VectorDouble_1000, std::vector< double >(1000, 1.1)) | |
| MAKE_LATENCY_BENCHMARK (AbslHash, Int32, PodRand< int32_t >) | |
| MAKE_LATENCY_BENCHMARK (AbslHash, Int64, PodRand< int64_t >) | |
| MAKE_LATENCY_BENCHMARK (AbslHash, String257, StringRand< 257 >) | |
| MAKE_LATENCY_BENCHMARK (AbslHash, String33, StringRand< 33 >) | |
| MAKE_LATENCY_BENCHMARK (AbslHash, String65, StringRand< 65 >) | |
| MAKE_LATENCY_BENCHMARK (AbslHash, String9, StringRand< 9 >) | |
| template<typename FuncType > | |
| FuncType * | ODRUseFunction (FuncType *ptr) |
| template<typename T > | |
| std::vector< T > | Vector (size_t count) |
Definition at line 151 of file abseil-cpp/absl/hash/hash_benchmark.cc.
Definition at line 305 of file abseil-cpp/absl/hash/hash_benchmark.cc.
| using AbslHash = absl::Hash<T> |
Definition at line 46 of file abseil-cpp/absl/hash/hash_benchmark.cc.
| absl::Cord FlatCord | ( | size_t | size | ) |
Definition at line 88 of file abseil-cpp/absl/hash/hash_benchmark.cc.
| absl::flat_hash_set<T> FlatHashSet | ( | size_t | count | ) |
Definition at line 141 of file abseil-cpp/absl/hash/hash_benchmark.cc.
| absl::Cord FragmentedCord | ( | size_t | size | ) |
Definition at line 94 of file abseil-cpp/absl/hash/hash_benchmark.cc.
| MAKE_BENCHMARK | ( | AbslHash | , |
| Cord_Flat_0 | , | ||
| absl::Cord() | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| Cord_Fragmented_200 | , | ||
| FragmentedCord(200) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| Cord_Fragmented_5000 | , | ||
| FragmentedCord(5000) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| Double | , | ||
| 1. | 2 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| DoubleZero | , | ||
| 0. | 0 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FastUnorderedSetDouble_1000 | , | ||
| FastUnorderedSet< double > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FastUnorderedSetInt64_1000 | , | ||
| FastUnorderedSet< int64_t > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FlatHashSetDouble_10 | , | ||
| FlatHashSet< double > | 10 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FlatHashSetDouble_100 | , | ||
| FlatHashSet< double > | 100 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FlatHashSetDouble_1000 | , | ||
| FlatHashSet< double > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FlatHashSetInt64_10 | , | ||
| FlatHashSet< int64_t > | 10 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FlatHashSetInt64_100 | , | ||
| FlatHashSet< int64_t > | 100 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| FlatHashSetInt64_1000 | , | ||
| FlatHashSet< int64_t > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| PairStringString_0 | , | ||
| std::make_pair(std::string(), std::string()) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| PairStringString_10 | , | ||
| std::make_pair(std::string(10, 'a'), std::string(10, 'b')) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| PairStringString_200 | , | ||
| std::make_pair(std::string(200, 'a'), std::string(200, 'b')) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| PairStringString_30 | , | ||
| std::make_pair(std::string(30, 'a'), std::string(30, 'b')) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| PairStringString_5000 | , | ||
| std::make_pair(std::string(5000, 'a'), std::string(5000, 'b')) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| PairStringString_90 | , | ||
| std::make_pair(std::string(90, 'a'), std::string(90, 'b')) | |||
| ) |
| MAKE_BENCHMARK | ( | AbslHash | , |
| String_0 | , | ||
| std::string() | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FastUnorderedSetDouble_1000 | , | ||
| FastUnorderedSet< double > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FastUnorderedSetInt64_1000 | , | ||
| FastUnorderedSet< int64_t > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FlatHashSetDouble_10 | , | ||
| FlatHashSet< double > | 10 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FlatHashSetDouble_100 | , | ||
| FlatHashSet< double > | 100 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FlatHashSetDouble_1000 | , | ||
| FlatHashSet< double > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FlatHashSetInt64_10 | , | ||
| FlatHashSet< int64_t > | 10 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FlatHashSetInt64_100 | , | ||
| FlatHashSet< int64_t > | 100 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| FlatHashSetInt64_1000 | , | ||
| FlatHashSet< int64_t > | 1000 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| Int32 | , | ||
| int32_t{} | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| Int64 | , | ||
| int64_t{} | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| PairInt32Int32 | , | ||
| std::pair< int32_t, int32_t >{} | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| PairInt64Int64 | , | ||
| std::pair< int64_t, int64_t >{} | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| String_0 | , | ||
| std::string() | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| String_10 | , | ||
| std::string(10, 'a') | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| String_200 | , | ||
| std::string(200, 'a') | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| String_30 | , | ||
| std::string(30, 'a') | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| String_5000 | , | ||
| std::string(5000, 'a') | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| String_90 | , | ||
| std::string(90, 'a') | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| TupleInt32BoolInt64 | , | ||
| std::tuple< int32_t, bool, int64_t >{} | |||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| VectorDouble_10 | , | ||
| std::vector< double > | 10, 1.1 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| VectorDouble_100 | , | ||
| std::vector< double > | 100, 1.1 | ||
| ) |
| MAKE_BENCHMARK | ( | TypeErasedAbslHash | , |
| VectorDouble_1000 | , | ||
| std::vector< double > | 1000, 1.1 | ||
| ) |
| MAKE_LATENCY_BENCHMARK | ( | AbslHash | , |
| String257 | , | ||
| StringRand< 257 > | |||
| ) |
| MAKE_LATENCY_BENCHMARK | ( | AbslHash | , |
| String33 | , | ||
| StringRand< 33 > | |||
| ) |
| MAKE_LATENCY_BENCHMARK | ( | AbslHash | , |
| String65 | , | ||
| StringRand< 65 > | |||
| ) |
| MAKE_LATENCY_BENCHMARK | ( | AbslHash | , |
| String9 | , | ||
| StringRand< 9 > | |||
| ) |
|
inline |
Definition at line 83 of file abseil-cpp/absl/hash/hash_benchmark.cc.
| std::vector<T> Vector | ( | size_t | count | ) |
Definition at line 112 of file abseil-cpp/absl/hash/hash_benchmark.cc.