@@ -283,6 +283,8 @@ pub fn iter_1m(b: &mut Bencher) {
283283 bench_iter ( b, 1_000 , 1_000_000 ) ;
284284}
285285
286+ // On Windows, this is a factor 11 away from causing stack overflow,
287+ // where node size grows to roughly `node::CAPACITY * FAT * 8` = 300 KB.
286288const FAT : usize = 256 ;
287289
288290// The returned map has small keys and values.
@@ -296,11 +298,6 @@ fn fat_val_map(n: usize) -> BTreeMap<usize, [usize; FAT]> {
296298 ( 0 ..n) . map ( |i| ( i, [ i; FAT ] ) ) . collect :: < BTreeMap < _ , _ > > ( )
297299}
298300
299- // The returned map has large keys and values.
300- fn fat_map ( n : usize ) -> BTreeMap < [ usize ; FAT ] , [ usize ; FAT ] > {
301- ( 0 ..n) . map ( |i| ( [ i; FAT ] , [ i; FAT ] ) ) . collect :: < BTreeMap < _ , _ > > ( )
302- }
303-
304301#[ bench]
305302pub fn clone_slim_100 ( b : & mut Bencher ) {
306303 let src = slim_map ( 100 ) ;
@@ -513,74 +510,3 @@ pub fn clone_fat_val_100_and_remove_half(b: &mut Bencher) {
513510 map
514511 } )
515512}
516-
517- #[ bench]
518- pub fn clone_fat_100 ( b : & mut Bencher ) {
519- let src = fat_map ( 100 ) ;
520- b. iter ( || src. clone ( ) )
521- }
522-
523- #[ bench]
524- pub fn clone_fat_100_and_clear ( b : & mut Bencher ) {
525- let src = fat_map ( 100 ) ;
526- b. iter ( || src. clone ( ) . clear ( ) )
527- }
528-
529- #[ bench]
530- pub fn clone_fat_100_and_drain_all ( b : & mut Bencher ) {
531- let src = fat_map ( 100 ) ;
532- b. iter ( || src. clone ( ) . drain_filter ( |_, _| true ) . count ( ) )
533- }
534-
535- #[ bench]
536- pub fn clone_fat_100_and_drain_half ( b : & mut Bencher ) {
537- let src = fat_map ( 100 ) ;
538- b. iter ( || {
539- let mut map = src. clone ( ) ;
540- assert_eq ! ( map. drain_filter( |i, _| i[ 0 ] % 2 == 0 ) . count( ) , 100 / 2 ) ;
541- assert_eq ! ( map. len( ) , 100 / 2 ) ;
542- } )
543- }
544-
545- #[ bench]
546- pub fn clone_fat_100_and_into_iter ( b : & mut Bencher ) {
547- let src = fat_map ( 100 ) ;
548- b. iter ( || src. clone ( ) . into_iter ( ) . count ( ) )
549- }
550-
551- #[ bench]
552- pub fn clone_fat_100_and_pop_all ( b : & mut Bencher ) {
553- let src = fat_map ( 100 ) ;
554- b. iter ( || {
555- let mut map = src. clone ( ) ;
556- while map. pop_first ( ) . is_some ( ) { }
557- map
558- } ) ;
559- }
560-
561- #[ bench]
562- pub fn clone_fat_100_and_remove_all ( b : & mut Bencher ) {
563- let src = fat_map ( 100 ) ;
564- b. iter ( || {
565- let mut map = src. clone ( ) ;
566- while let Some ( elt) = map. iter ( ) . map ( |( & i, _) | i) . next ( ) {
567- let v = map. remove ( & elt) ;
568- debug_assert ! ( v. is_some( ) ) ;
569- }
570- map
571- } ) ;
572- }
573-
574- #[ bench]
575- pub fn clone_fat_100_and_remove_half ( b : & mut Bencher ) {
576- let src = fat_map ( 100 ) ;
577- b. iter ( || {
578- let mut map = src. clone ( ) ;
579- for i in ( 0 ..100 ) . step_by ( 2 ) {
580- let v = map. remove ( & [ i; FAT ] ) ;
581- debug_assert ! ( v. is_some( ) ) ;
582- }
583- assert_eq ! ( map. len( ) , 100 / 2 ) ;
584- map
585- } )
586- }
0 commit comments