From: s.wanabe@... Date: 2018-09-06T23:25:34+00:00 Subject: [ruby-core:88887] [Ruby trunk Feature#15085] Decrease memory cache usage of MJIT Issue #15085 has been reported by wanabe (_ wanabe). ---------------------------------------- Feature #15085: Decrease memory cache usage of MJIT https://bugs.ruby-lang.org/issues/15085 * Author: wanabe (_ wanabe) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- MJIT makes ruby-methods faster by ordinary, but I have observed that some cases are exceptional. I guess the one is caused by `invokesuper` instruction. And I guess it is related to memory caching, especially iTLB. Attached "export-big-func.patch" makes MJIT binary code for `invokesuper` smaller. "super.rb" is a benchmark script with benchmark_driver. "benchmark.log" is a result of super.rb. "benchmark-with-perf.log" is another result with `PERF_STAT` environment variable. The results are merely in my environment and depend to a large part on machine specs. `invokesuper` can get faster with exported `vm_search_super_method()`, but I think it is not enough. Because `perf stat` shows that there are still many iTLB-load-misses. I believe MJIT can grow fast with good care for CPU memory cache, not only iTLB but also L1 / L2 and so on. ---Files-------------------------------- export-big-func.patch (934 Bytes) super.rb (897 Bytes) benchmark.log (624 Bytes) benchmark-with-perf.log (7.05 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: