mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Prior to this changeset, majority of inline cache mishits resulted
into the same method entry when rb_callable_method_entry() resolves
a method search. Let's not call the function at the first place on
such situations.
In doing so we extend the struct rb_call_cache from 44 bytes (in
case of 64 bit machine) to 64 bytes, and fill the gap with
secondary class serial(s). Call cache's class serials now behavies
as a LRU cache.
Calculating -------------------------------------
ours 2.7 2.6
vm2_poly_same_method 2.339M 1.744M 1.369M i/s - 6.000M times in 2.565086s 3.441329s 4.381386s
Comparison:
vm2_poly_same_method
ours: 2339103.0 i/s
2.7: 1743512.3 i/s - 1.34x slower
2.6: 1369429.8 i/s - 1.71x slower
|
||
|---|---|---|
| .. | ||
| lib | ||
| m4 | ||
| ruby_vm | ||
| test | ||
| asm_parse.rb | ||
| bisect.sh | ||
| build-transcode | ||
| checksum.rb | ||
| colors | ||
| darwin-cc | ||
| downloader.rb | ||
| enc-emoji-citrus-gen.rb | ||
| enc-emoji4unicode.rb | ||
| enc-unicode.rb | ||
| eval.rb | ||
| expand-config.rb | ||
| extlibs.rb | ||
| fake.rb | ||
| fetch-bundled_gems.rb | ||
| file2lastrev.rb | ||
| format-release | ||
| gem-unpack.rb | ||
| gen_dummy_probes.rb | ||
| gen_ruby_tapset.rb | ||
| generic_erb.rb | ||
| git-refresh | ||
| gperf.sed | ||
| id2token.rb | ||
| ifchange | ||
| insns2vm.rb | ||
| install-sh | ||
| leaked-globals | ||
| make-snapshot | ||
| make_hgraph.rb | ||
| mdoc2man.rb | ||
| merger.rb | ||
| mjit_archflag.sh | ||
| mk_call_iseq_optimized.rb | ||
| mkconfig.rb | ||
| mkrunnable.rb | ||
| node_name.rb | ||
| parse.rb | ||
| prereq.status | ||
| probes_to_wiki.rb | ||
| pure_parser.rb | ||
| rbinstall.rb | ||
| rbuninstall.rb | ||
| redmine-backporter.rb | ||
| release.sh | ||
| rmdirs | ||
| run-gcov.rb | ||
| run-lcov.rb | ||
| runruby.rb | ||
| strip-rdoc.rb | ||
| sync_default_gems.rb | ||
| test-bundled-gems.rb | ||
| test-coverage.rb | ||
| transcode-tblgen.rb | ||
| transform_mjit_header.rb | ||
| travis_retry.sh | ||
| update-deps | ||
| vtlh.rb | ||
| ytab.sed | ||