fastruby / fast-ruby

:dash: Writing Fast Ruby :heart_eyes: -- Collect Common Ruby idioms.
https://github.com/fastruby/fast-ruby
5.67k stars 376 forks source link

unintentional object allocation #137

Closed stereobooster closed 6 years ago

stereobooster commented 6 years ago
ruby code/method/default-arguments.rb
Calculating -------------------------------------
constant as default argument
                         0.000  memsize (     0.000  retained)
                         0.000  objects (     0.000  retained)
                         0.000  strings (     0.000  retained)
new object as default argument
                       400.000k memsize (     0.000  retained)
                        10.000k objects (     0.000  retained)
                         0.000  strings (     0.000  retained)

Comparison:
constant as default argument  :          0 allocated
new object as default argument:     400000 allocated - Infx more
benoittgt commented 6 years ago

Related also : https://github.com/benoittgt/understand_ruby_memory#why-keywords-arguments-will-create-less-garbage-collected-objects-after-22-answered-