This method keeps comes up in part because configs is allocating a new
Hash every time. My last change took advantage of that by using map!
on it. configs is called quite often, including in this [] method,
so there's a benefit to memoizing it.
Back in [], logically we are trying to find the first Hash in configs
that has a value for the given key. Currently, we end up map and compact to just get that value.
Instead, we can use a loop over configs, and break when we find the
value for the key.
[rubygems/rubygems] (Further) Improve Bundler::Settings#[] performance and memory usage
I previously identified and improved this method over in https://github.com/rubygems/rubygems/pull/6884
but while reviewing another memory_profiler profile, I realized another
gain we can eek out.
This method keeps comes up in part because
configs
is allocating a newHash every time. My last change took advantage of that by using
map!
on it.
configs
is called quite often, including in this[]
method,so there's a benefit to memoizing it.
Back in
[]
, logically we are trying to find the first Hash inconfigs
that has a value for the given key. Currently, we end up
map
andcompact
to just get that value.Instead, we can use a loop over
configs
, and break when we find thevalue for the key.
https://github.com/rubygems/rubygems/commit/b913cfc87b