@@ -283,6 +283,8 @@ pub fn iter_1m(b: &mut Bencher) {
283
283
bench_iter ( b, 1_000 , 1_000_000 ) ;
284
284
}
285
285
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.
286
288
const FAT : usize = 256 ;
287
289
288
290
// The returned map has small keys and values.
@@ -296,11 +298,6 @@ fn fat_val_map(n: usize) -> BTreeMap<usize, [usize; FAT]> {
296
298
( 0 ..n) . map ( |i| ( i, [ i; FAT ] ) ) . collect :: < BTreeMap < _ , _ > > ( )
297
299
}
298
300
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
-
304
301
#[ bench]
305
302
pub fn clone_slim_100 ( b : & mut Bencher ) {
306
303
let src = slim_map ( 100 ) ;
@@ -513,74 +510,3 @@ pub fn clone_fat_val_100_and_remove_half(b: &mut Bencher) {
513
510
map
514
511
} )
515
512
}
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