Project

General

Profile

« Previous | Next » 

Revision 6a876a61

Added by Josh Nichols almost 2 years ago

[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 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.

https://github.com/rubygems/rubygems/commit/b913cfc87b