diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2020-04-11 20:45:22 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-11 20:45:22 -0700 |
commit | 5c2768181382bf84137759efea66f3aaf212665d (patch) | |
tree | 9910bfdcb1baf761cf014c8a6f7daf53bf71c362 /doc/contributors.rdoc | |
parent | a01bda594996fdc247e183f107cada43e2c8e3b8 (diff) | |
download | ruby-5c2768181382bf84137759efea66f3aaf212665d.tar.gz |
Enable fastpath on invokesuper (#3021)
Fastpath has not been used for invokesuper since it has set vm_call_super_method on every invocation.
Because it seems to be blocked only by refinements, try enabling fastpath on invokesuper when cme is not for refinements.
While this patch itself should be helpful for VM performance, a part of this patch's motivation is to unblock inlining invokesuper on JIT.
$ benchmark-driver -v --rbenv 'before;after' benchmark/vm2_super.yml --repeat-count=4
before: ruby 2.8.0dev (2020-04-11T15:19:58Z master a01bda5949) [x86_64-linux]
after: ruby 2.8.0dev (2020-04-12T02:00:08Z invokesuper-fastpath c171984ee3) [x86_64-linux]
Calculating -------------------------------------
before after
vm2_super 20.031M 32.860M i/s - 6.000M times in 0.299534s 0.182593s
Comparison:
vm2_super
after: 32859885.2 i/s
before: 20031097.3 i/s - 1.64x slower
Diffstat (limited to 'doc/contributors.rdoc')
0 files changed, 0 insertions, 0 deletions