X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Fdoc%2Fhtml%2Fext%2Fpb_ds%2Fmultimap_text_insert_timing_test_small.html;fp=libstdc%2B%2B-v3%2Fdoc%2Fhtml%2Fext%2Fpb_ds%2Fmultimap_text_insert_timing_test_small.html;h=cda3629b7b29088c660e1c57a0a5b223ce2d2bf1;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=0000000000000000000000000000000000000000;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html new file mode 100644 index 00000000..cda3629b --- /dev/null +++ b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html @@ -0,0 +1,217 @@ + + + + + +"Multimap" Text Insert Timing Test with Small Average + Secondary-Key to Primary-Key Ratio + + + +
+

"Multimap" Text Insert Timing Test with Small Average + Secondary-Key to Primary-Key Ratio

+

Description

+

This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform i.i.d.integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key (see Motivation::Associative + Containers::Alternative to Multiple Equivalent Keys). There + are 400 distinct primary keys, and the ratio of secondary keys + to primary keys ranges from 1 to 5.

+

The test measures the average insert-time as a function of + the number of values inserted. For pb_ds's containers, + it inserts a primary key into the primary associative + container, then a secondary key into the secondary associative + container. For the native multimaps, it obtains a range using + std::equal_range, and inserts a value only if it was + not contained already.

+

(The test was executed with multimap_text_insert_timing_test + thirty_years_among_the_dead_preproc.txt 400 1 1 6)

+

Purpose

+

The test checks the insert-time scalability of different + "multimap" designs (see Motivation::Associative + Containers::Alternative to Multiple Equivalent Keys).

+

Results

+

Figures NTG, NTM, and + NTL show the results for "multimaps" which + use a tree-based container for primary keys, in g++, msvc++, and + local, + respectively; Figures NHG, NHM, and NHL show the results for + "multimaps" which use a hash-based container for primary keys, + in g++, + msvc++, + and local, + respectively.

+
+
+
+
+
no image
NTG: Native and primary tree-based multimap types insert timing test - g++

In the above figure, the names in the legends have the following meaning:

+
    +
  1. +n_mmap- +std::multimap
  2. +
  3. +rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- +tree + with Tag = rb_tree_tag +, and Node_Update = null_tree_node_update +, mapping each key to cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2
  4. +
  5. +rb_tree_mmap_lu_mtf_set- +tree + with Tag = rb_tree_tag +, and Node_Update = null_tree_node_update +, mapping each key to list_update + with Update_Policy = move_to_front_lu_policy +
  6. +
+
+
+
+
+
+
+
+
+
+
no image
NTM: NHM Native and primary tree-based multimap types insert timing test - msvc++

In the above figure, the names in the legends have the following meaning:

+
    +
  1. +rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- +tree + with Tag = rb_tree_tag +, and Node_Update = null_tree_node_update +, mapping each key to cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2
  2. +
  3. +n_mmap- +std::multimap
  4. +
  5. +rb_tree_mmap_lu_mtf_set- +tree + with Tag = rb_tree_tag +, and Node_Update = null_tree_node_update +, mapping each key to list_update + with Update_Policy = move_to_front_lu_policy +
  6. +
+
+
+
+
+
+
+
+
+
+
no image
NTL: Native and primary tree-based multimap types insert timing test - local
+
+
+
+
+
+
+
+
+
no image
NHG: Native and primary hash-based multimap types insert timing test - g++

In the above figure, the names in the legends have the following meaning:

+
    +
  1. +n_hash_mmap- +__gnucxx::hash_multimap
  2. +
  3. +cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- +cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2
  4. +
  5. +cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- +cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2, mapping each key to list_update + with Update_Policy = move_to_front_lu_policy +
  6. +
+
+
+
+
+
+
+
+
+
+
no image
NHM: Native and primary hash-based multimap types insert timing test - msvc++

In the above figure, the names in the legends have the following meaning:

+
    +
  1. +cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- +cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2
  2. +
  3. +n_hash_mmap- +stdext::hash_multimap
  4. +
  5. +cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- +cc_hash_table +with Comb_Hash_Fn = direct_mask_range_hashing +, and Resize_Policy = hash_standard_resize_policy + with Size_Policy = hash_exponential_size_policy +, and Trigger_Policy = hash_load_check_resize_trigger + with αmin = 1/8 and αmax = 1/2, mapping each key to list_update + with Update_Policy = move_to_front_lu_policy +
  6. +
+
+
+
+
+
+
+
+
+
+
no image
NHL: Native and primary hash-based multimap types insert timing test - local
+
+
+
+
+

Observations

+

See Observations::Mapping-Semantics + Considerations.

+
+ +