Age | Commit message (Collapse) | Author |
|
https://github.com/rubygems/rubygems/commit/e8a363713e
|
|
https://github.com/rubygems/rubygems/commit/c4a8d2a930
|
|
https://github.com/rubygems/rubygems/commit/5d6a8f2fb4
|
|
https://github.com/rubygems/rubygems/commit/bb66253f2c
|
|
https://github.com/rubygems/rubygems/commit/9ab1136036
|
|
https://github.com/rubygems/rubygems/commit/70243b1d72
|
|
Running `bundle update --bundler` on a rails app locally:
```
==> memprof.after.txt <==
Total allocated: 301.90 kB (3794 objects)
Total retained: 73.24 kB (698 objects)
==> memprof.before.txt <==
Total allocated: 14.47 MB (196378 objects)
Total retained: 25.93 kB (202 objects)
```
So for a slight increase in retained memory (all keys are now retained),
we go from about 200k allocations in the settings file to under 4k
https://github.com/rubygems/rubygems/commit/e64debb6ae
|
|
https://github.com/rubygems/rubygems/commit/75ffa8ef76
Co-authored-by: Martin Emde <martinemde@users.noreply.github.com>
|
|
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
|
|
https://github.com/rubygems/rubygems/commit/75c0f27b7e
|
|
https://github.com/rubygems/rubygems/commit/46745885e8
|
|
still include that
https://github.com/rubygems/rubygems/commit/235d9b38d8
|
|
https://github.com/rubygems/rubygems/commit/e79ccdafd8
|
|
.prepend to avoid allocating a new string.
https://github.com/rubygems/rubygems/commit/2ac35a661f
|
|
when it's a symbol
https://github.com/rubygems/rubygems/commit/535feb817c
|
|
allocating a matchdata, which is not used
https://github.com/rubygems/rubygems/commit/cbf9ac93d7
|
|
it's a symbol.
https://github.com/rubygems/rubygems/commit/f8167db8a2
|
|
allocating it multiple times
https://github.com/rubygems/rubygems/commit/8eac49c429
|
|
boundaries
https://github.com/rubygems/rubygems/commit/d7cde68034
|
|
individual keys are also new, so we can use ! methods on each individual one as well.
https://github.com/rubygems/rubygems/commit/f2e912b9bb
|
|
multiple times. This saves allocating 2 arrays
https://github.com/rubygems/rubygems/commit/48c03b33b7
|
|
that means we can use bang methods to avoid allocating new copies
https://github.com/rubygems/rubygems/commit/8bc13fa55f
|
|
avoid allocating another hash.
`String#start_with?` is faster than regex that is bound to the start of
a string.
https://github.com/rubygems/rubygems/commit/9b2006ef09
|
|
https://github.com/rubygems/rubygems/commit/456fd05d3a
|
|
https://github.com/rubygems/rubygems/commit/9635a2fd74
|
|
https://github.com/rubygems/rubygems/commit/c431a1df52
|
|
through ENV
The `deployment` setting sets `path` to `vendor/bundle` implicitly, but
that should only apply if `path` is not set explicitly, at any level.
https://github.com/rubygems/rubygems/commit/3552c064c1
|
|
https://github.com/rubygems/rubygems/commit/5351e01b32
|
|
https://github.com/rubygems/rubygems/commit/d842e2092f
|
|
https://github.com/rubygems/rubygems/commit/b211eeacba
|
|
Just like gem sources, a "style-only" change, like adding a trailing
slash, should not expire them.
|
|
https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc
Notes:
Merged: https://github.com/ruby/ruby/pull/6326
|
|
https://github.com/rubygems/rubygems/commit/446cc57a7ccdf1924deb291be9571219e7ba8523
Notes:
Merged: https://github.com/ruby/ruby/pull/6198
|
|
https://github.com/rubygems/rubygems/commit/2d99277328
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5606
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5342
|
|
values returned
https://github.com/rubygems/rubygems/commit/601b5553bb
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|
|
https://github.com/rubygems/rubygems/commit/290b6ab078
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|
|
https://github.com/rubygems/rubygems/commit/58fc31442f
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|
|
https://github.com/rubygems/rubygems/commit/f28ab141af
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4648
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4533
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4367
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4383
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4143
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3864
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3659
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3114
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3086
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2753
|