Chinese (Simplified Han script) (Boost Unordered - en to zh_Hans translation catalogue (75 entries)

en: = Benchmarks
zh_Hans: = 基准测试

en: All benchmarks were created using `unordered_set<unsigned int>` (non-duplicate) and `unordered_multiset<unsigned int>` (duplicate). The source code can be https://github.com/boostorg/boost_unordered_benchmarks/tree/boost_unordered_set[found here^].
zh_Hans: 所有基准测试均使用 `unordered++_++set++&lt;++unsigned int++&gt;++`(非重复元素） 和 `unordered++_++multiset++&lt;++unsigned int++&gt;++` （重复元素）创建。源代码可 https://github.com/boostorg/boost_unordered_benchmarks/tree/boost_unordered_set[在此处获取] 。

en: The insertion benchmarks insert `n` random values, where `n` is between 10,000 and 3 million. For the duplicated benchmarks, the same random values are repeated an average of 5 times.
zh_Hans: 插入基准测试会插入 `n` 个随机值，其中 `n` 的范围在10,000至300万之间。在重复值测试场景中，同一组随机值会平均重复插入 5 次。

en: The erasure benchmarks erase all `n` elements randomly until the container is empty. Erasure by key uses `erase(const key_type&)` to remove entire groups of equivalent elements in each operation.
zh_Hans: 在擦除基准测试中，随机删除所有 `n` 个元素直至容器为空。通过键擦除操作使用 `erase(const key++_++type&amp;)` 方法，每次调用将移除整个等效元素组。

[ctx: :14]
en: The successful lookup benchmarks are done by looking up all `n` values, in their original insertion order.
zh_Hans: 成功查找基准测试通过按照元素的原始插入顺序查找全部 `n` 个值来完成。

[ctx: :16]
en: The unsuccessful lookup benchmarks use `n` randomly generated integers but using a different seed value.
zh_Hans: 未命中查找基准测试使用不同种子值生成的 `n` 个随机整数进行。

[ctx: :20]
en: Insertion
zh_Hans: 插入

en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5 |===
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5 |===

[ctx: :44]
en: h|non-duplicate elements, + prior `reserve` h|duplicate elements, + prior `reserve` h|duplicate elements, + max load factor 5, + prior `reserve`
zh_Hans: h|非重复元素, + 预先 `reserve` h|重复元素, + 预先 `reserve` h|重复元素, + 最大负载因子 5, + 预先 `reserve`

[ctx: :54]
en: Erasure
zh_Hans: 擦除

[ctx: :64]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :74]
en: h|by key, duplicate elements h|by key, duplicate elements, + max load factor 5
zh_Hans: h|通过键操作， 重复元素 h|通过键操作, 重复元素, + 最大负载因子 5

en: Successful Lookup
zh_Hans: 成功查找

[ctx: :90]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :97]
en: Unsuccessful lookup
zh_Hans: 未命中查找

[ctx: :107]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :116]
en: Insertion
zh_Hans: 插入

[ctx: :126]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :141]
en: h|non-duplicate elements, + prior `reserve` h|duplicate elements, + prior `reserve` h|duplicate elements, + max load factor 5, + prior `reserve`
zh_Hans: h|非重复元素, + 预先 `reserve` h|重复元素, + 预先 `reserve` h|重复元素, + 最大负载因子 5, + 预先 `reserve`

[ctx: :151]
en: Erasure
zh_Hans: 擦除

[ctx: :161]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :171]
en: h|by key, duplicate elements h|by key, duplicate elements, + max load factor 5
zh_Hans: h|通过键操作， 重复元素 h|通过键操作, 重复元素, + 最大负载因子 5

[ctx: :177]
en: Successful lookup
zh_Hans: 成功查找

[ctx: :187]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :194]
en: Unsuccessful lookup
zh_Hans: 未命中查找

[ctx: :204]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :213]
en: Insertion
zh_Hans: 插入

[ctx: :223]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :238]
en: h|non-duplicate elements, + prior `reserve` h|duplicate elements, + prior `reserve` h|duplicate elements, + max load factor 5, + prior `reserve`
zh_Hans: h|非重复元素, + 预先 `reserve` h|重复元素, + 预先 `reserve` h|重复元素, + 最大负载因子 5, + 预先 `reserve`

[ctx: :248]
en: Erasure
zh_Hans: 擦除

[ctx: :258]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :268]
en: h|by key, duplicate elements h|by key, duplicate elements, + max load factor 5
zh_Hans: h|通过键操作， 重复元素 h|通过键操作, 重复元素, + 最大负载因子 5

[ctx: :274]
en: Successful lookup
zh_Hans: 成功查找

[ctx: :284]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :291]
en: Unsuccessful lookup
zh_Hans: 未命中查找

[ctx: :301]
en: h|non-duplicate elements h|duplicate elements h|duplicate elements, + max load factor 5
zh_Hans: h|非重复元素 h|重复元素 h|重复元素, + 最大负载因子 5

[ctx: :310]
en: All benchmarks were created using:
zh_Hans: 所有基准测试均为使用以下链接来创建的：

en: `https://abseil.io/docs/cpp/guides/container[absl::flat_hash_map^]<uint64_t, uint64_t>`
zh_Hans: https://abseil.io/docs/cpp/guides/container[`absl::flat++_++hash++_++map`^]`++&lt;++uint64++_++t, uint64++_++t++&gt;++`

en: `boost::unordered_map<uint64_t, uint64_t>`
zh_Hans: `boost::unordered_map<uint64_t, uint64_t="">`</uint64_t,>

en: `boost::unordered_flat_map<uint64_t, uint64_t>`
zh_Hans: `boost::unordered_flat_map<uint64_t, uint64_t="">`</uint64_t,>

en: `boost::unordered_node_map<uint64_t, uint64_t>`
zh_Hans: `boost::unordered_node_map<uint64_t, uint64_t="">`</uint64_t,>

en: The source code can be https://github.com/boostorg/boost_unordered_benchmarks/tree/boost_unordered_flat_map[found here^].
zh_Hans: 源代码可 https://github.com/boostorg/boost_unordered_benchmarks/tree/boost_unordered_flat_map[在此处获取] 。

en: The insertion benchmarks insert `n` random values, where `n` is between 10,000 and 10 million.
zh_Hans: 插入基准测试的操作将插入 `n` 个随机值，其中 `n` 的范围在10,000至1000万之间。

en: The erasure benchmarks erase traverse the `n` elements and erase those with odd key (50% on average).
zh_Hans: 擦除基准测试会遍历全部 `n` 个元素，并删除其中键值为奇数的元素（平均约占50%）。

[ctx: :323]
en: The successful lookup benchmarks are done by looking up all `n` values, in their original insertion order.
zh_Hans: 成功查找基准测试通过按照元素的原始插入顺序查找全部 `n` 个值来完成。

[ctx: :325]
en: The unsuccessful lookup benchmarks use `n` randomly generated integers but using a different seed value.
zh_Hans: 未命中查找基准测试使用不同种子值生成的 `n` 个随机整数进行。

[ctx: :340]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :359]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :378]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :397]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :416]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :435]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :454]
en: h|running insertion h|running erasure h|successful lookup h|unsuccessful lookup
zh_Hans: h|插入的执行 h|擦除的执行 h|成功查找 h|未命中查找

[ctx: :463]
en: All benchmarks were created using:
zh_Hans: 所有基准测试均为使用以下链接来创建的：

en: `https://spec.oneapi.io/versions/latest/elements/oneTBB/source/containers/concurrent_hash_map_cls.html[oneapi::tbb::concurrent_hash_map^]<int, int>`
zh_Hans: `https://spec.oneapi.io/versions/latest/elements/oneTBB/source/containers/concurrent_hash_map_cls.html[oneapi::tbb::concurrent_hash_map^]<int, int="">`</int,>

en: `https://github.com/greg7mdp/gtl/blob/main/docs/phmap.md[gtl::parallel_flat_hash_map^]<int, int>` with 64 submaps
zh_Hans: `https://github.com/greg7mdp/gtl/blob/main/docs/phmap.md[gtl::parallel_flat_hash_map^]<int, int="">` （含64个子映射）</int,>

en: `boost::concurrent_flat_map<int, int>`
zh_Hans: `boost::concurrent_flat_map<int, int="">`</int,>

en: `boost::concurrent_node_map<int, int>`
zh_Hans: `boost::concurrent_node_map<int, int="">`</int,>

en: The source code can be https://github.com/boostorg/boost_unordered_benchmarks/tree/boost_concurrent_flat_map[found here^].
zh_Hans: 源代码可 https://github.com/boostorg/boost_unordered_benchmarks/tree/boost_concurrent_flat_map[在此处获取] 。

en: The benchmarks exercise a number of threads _T_ (between 1 and 16) concurrently performing operations randomly chosen among **update**, **successful lookup** and **unsuccessful lookup**. The keys used in the operations follow a https://en.wikipedia.org/wiki/Zipf%27s_law#Formal_definition[Zipf distribution^] with different _skew_ parameters: the higher the skew, the more concentrated are the keys in the lower values of the covered range.
zh_Hans: 基准测试使用__T__个线程（数量1至16之间）并发执行随机选择的操作，这些操作包括**更新**、**成功查找**和**未命中查找**三种类型。操作使用的键遵循 https://en.wikipedia.org/wiki/Zipf%27s_law#Formal_definition[齐夫分布] ，并采用不同的__偏斜__参数：偏斜值越高，键的分布越集中在取值区间的较低数值区域。

en: `boost::concurrent_flat_map` and `boost::concurrent_node_map` are exercised using both regular and xref:concurrent.adoc#concurrent_bulk_visitation[bulk visitation]: in the latter case, lookup keys are buffered in a local array and then processed at once each time the buffer reaches `xref:reference/concurrent_flat_map.adoc#concurrent_flat_map_constants[bulk_visit_size]`.
zh_Hans: `boost::concurrent_flat_map` 和 `boost::concurrent_node_map` 分别通过常规访问和 xref:concurrent.adoc#concurrent_bulk_visitation[批量访问] 进行演练：在批量访问的情况下，查找键会缓存在本地数组中，每当缓冲区大小达到 `xref:reference/concurrent_flat_map.adoc#concurrent_flat_map_constants[bulk_visit_size]` 时，再一次性处理这些键。

[ctx: :493]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :509]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===

[ctx: :528]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :544]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===

[ctx: :563]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :579]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===

[ctx: :598]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :614]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===

[ctx: :633]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :649]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===

[ctx: :668]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :684]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===

[ctx: :703]
en: h|500k updates, 4.5M lookups + skew=0.01 h|500k updates, 4.5M lookups + skew=0.5 h|500k updates, 4.5M lookups + skew=0.99 |===
zh_Hans: h|50万次更新, 450万次查找 + 偏斜=0.01 h|50万次更新, 450万次查找 + 偏斜=0.5 h|50万次更新, 450万次查找 + 偏斜=0.99 |===

[ctx: :719]
en: h|5M updates, 45M lookups + skew=0.01 h|5M updates, 45M lookups + skew=0.5 h|5M updates, 45M lookups + skew=0.99 |===
zh_Hans: h|500万次更新, 4500万次查找 + 偏斜=0.01 h|500万次更新, 4500万次查找 + 偏斜=0.5 h|500万次更新, 4500万次查找 + 偏斜=0.99 |===
