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 Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
api_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
api_specification.rb [rubygems/rubygems] Avoid duplicated generation of APISpecification objects 2020-09-28 14:54:22 +09:00
best_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
composed_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
conflict.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
current_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
dependency_request.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
git_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
git_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
index_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
index_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
installed_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
installer_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
local_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
lock_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
lock_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
molinillo.rb
requirement_list.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
source_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
spec_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
stats.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
vendor_set.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00
vendor_specification.rb Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636" 2020-09-23 22:01:44 +09:00