BigW Consortium Gitlab
This concern provides an optimized/simplified version of the "cache_key" method. This method is about 9 times faster than the default "cache_key" method. The produced cache keys _are_ different from the previous ones but this is worth the performance improvement. To showcase this I set up a benchmark (using benchmark-ips) that compares FasterCacheKeys#cache_key with the regular cache_key. The output of this benchmark was: Calculating ------------------------------------- cache_key 4.825k i/100ms cache_key_fast 21.723k i/100ms ------------------------------------------------- cache_key 59.422k (± 7.2%) i/s - 299.150k cache_key_fast 543.243k (± 9.2%) i/s - 2.694M Comparison: cache_key_fast: 543243.4 i/s cache_key: 59422.0 i/s - 9.14x slower To see the impact on real code I applied these changes and benchmarked Issue#referenced_merge_requests. For an issue referencing 10 merge requests these changes shaved off between 40 and 60 milliseconds.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
access_requestable.rb | Loading commit data... | |
awardable.rb | Loading commit data... | |
case_sensitivity.rb | Loading commit data... | |
faster_cache_keys.rb | Loading commit data... | |
importable.rb | Loading commit data... | |
internal_id.rb | Loading commit data... | |
issuable.rb | Loading commit data... | |
mentionable.rb | Loading commit data... | |
milestoneish.rb | Loading commit data... | |
note_on_diff.rb | Loading commit data... | |
participable.rb | Loading commit data... | |
referable.rb | Loading commit data... | |
sortable.rb | Loading commit data... | |
spammable.rb | Loading commit data... | |
statuseable.rb | Loading commit data... | |
strip_attribute.rb | Loading commit data... | |
subscribable.rb | Loading commit data... | |
taskable.rb | Loading commit data... | |
token_authenticatable.rb | Loading commit data... |