summaryrefslogtreecommitdiff
path: root/Gemfile
diff options
context:
space:
mode:
authorJason Lee <huacnlee@gmail.com>2015-12-16 11:51:37 +0800
committerJason Lee <huacnlee@gmail.com>2015-12-16 11:51:37 +0800
commit03a40a7ee1262d5b68e5f7aba26077dc3bef6b33 (patch)
tree2d73ada0e24bc33355340d851dfb61d4112cf0fe /Gemfile
parentb95f7b1864672b873501792775521a6bd6393520 (diff)
downloadgitlab-ce-03a40a7ee1262d5b68e5f7aba26077dc3bef6b33.tar.gz
Avoid allocations in Ability class.
It won't change anything after they are first invoke, so add method cache to avoid allocations and avoid GC. Benchmarks: ``` Calculating ------------------------------------- project_guest_rules without method cache 79.352k i/100ms project_guest_rules with method cache 93.634k i/100ms ------------------------------------------------- project_guest_rules without method cache 2.865M (±32.5%) i/s - 11.982M project_guest_rules with method cache 4.419M (± 7.4%) i/s - 22.004M Comparison: project_guest_rules with method cache: 4418908.0 i/s project_guest_rules without method cache: 2864514.0 i/s - 1.54x slower Calculating ------------------------------------- project_report_rules without method cache 53.126k i/100ms project_report_rules with method cache 97.473k i/100ms ------------------------------------------------- project_report_rules without method cache 1.093M (±36.5%) i/s - 4.675M project_report_rules with method cache 4.420M (± 7.2%) i/s - 22.029M Comparison: project_report_rules with method cache: 4420054.3 i/s project_report_rules without method cache: 1092509.6 i/s - 4.05x slower ``` https://gist.github.com/huacnlee/b04788ae6df42fe769e4
Diffstat (limited to 'Gemfile')
0 files changed, 0 insertions, 0 deletions