1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/rubygems/resolver
Yusuke Endoh c55b5f1062 [rubygems/rubygems] Avoid duplicated generation of APISpecification objects
As far as I could see, `Gem::Resolver::APISpecification` objects are
supposed to be immutable.  If my guessing is correct, then we can cache
and reuse its instances for performance.
At least, `rake` passes on my machine.

Before this change:

```
$ time ruby -I lib bin/gem install --no-doc aws-sdk
Successfully installed aws-sdk-3.0.1
1 gem installed
real    0m37.104s
user    0m36.952s
sys     0m0.333s
```

After this change:

```
$ time ruby -I lib bin/gem install --no-doc aws-sdk
Successfully installed aws-sdk-3.0.1
1 gem installed
real    0m23.905s
user    0m23.740s
sys     0m0.365s
```

https://github.com/rubygems/rubygems/commit/7e8fbba85c
2020-09-28 14:54:22 +09:00
..
molinillo/lib
activation_request.rb
api_set.rb
api_specification.rb [rubygems/rubygems] Avoid duplicated generation of APISpecification objects 2020-09-28 14:54:22 +09:00
best_set.rb
composed_set.rb
conflict.rb
current_set.rb
dependency_request.rb
git_set.rb
git_specification.rb
index_set.rb
index_specification.rb
installed_specification.rb
installer_set.rb
local_specification.rb
lock_set.rb
lock_specification.rb
molinillo.rb
requirement_list.rb
set.rb
source_set.rb
spec_specification.rb
specification.rb
stats.rb
vendor_set.rb
vendor_specification.rb