File tree 2 files changed +36
-0
lines changed 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -447,6 +447,25 @@ Comparison:
447
447
Array#insert: 0.2 i/s - 262.56x slower
448
448
```
449
449
450
+ ##### ` Array#new ` vs ` Fixnum#times + map ` [ code] ( code/array/array-new-vs-fixnum-times-map.rb )
451
+
452
+ Typical slowdown is 40-60% depending on the size of the array. See the corresponding
453
+ [ pull request] ( https://github.com/JuanitoFatas/fast-ruby/pull/91/ ) for performance characteristics.
454
+
455
+ ```
456
+ ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
457
+ Calculating -------------------------------------
458
+ Array#new 63.875k i/100ms
459
+ Fixnum#times + map 48.010k i/100ms
460
+ -------------------------------------------------
461
+ Array#new 1.070M (± 2.2%) i/s - 5.365M
462
+ Fixnum#times + map 678.097k (± 2.7%) i/s - 3.409M
463
+
464
+ Comparison:
465
+ Array#new: 1069837.0 i/s
466
+ Fixnum#times + map: 678097.4 i/s - 1.58x slower
467
+ ```
468
+
450
469
### Enumerable
451
470
452
471
##### ` Enumerable#each + push ` vs ` Enumerable#map ` [ code] ( code/enumerable/each-push-vs-map.rb )
Original file line number Diff line number Diff line change
1
+ require "benchmark/ips"
2
+
3
+ ELEMENTS = 9
4
+
5
+ def fast
6
+ Array . new ( ELEMENTS ) { |i | i }
7
+ end
8
+
9
+ def slow
10
+ ELEMENTS . times . map { |i | i }
11
+ end
12
+
13
+ Benchmark . ips do |x |
14
+ x . report ( "Array#new" ) { fast }
15
+ x . report ( "Fixnum#times + map" ) { slow }
16
+ x . compare!
17
+ end
You can’t perform that action at this time.
0 commit comments