ActionsLike0
Feature #14489
closedMJIT needs a reusable cache
Description
Currently on Discourse boot I notice a few minutes of jitting every time you boot it:
This is a redacted output: https://gist.github.com/SamSaffron/4e18c2dacf476f1f27275f5b5d7bbb97
CPU is spinning hard compiling temp file after temp file for minutes:
JIT success (213.1ms): platform_string@/home/sam/.rbenv/versions/master/lib/ruby/gems/2.6.0/gems/bundler-1.16.1/lib/bundler/lazy_specification.rb:18 -> /tmp/_ruby_mjit_p6914u199.c
and so on.
Instead, mjit should have a reusable cache on disk it first tries fetching from prior to re-compiling. It can use an ISEQ SHA1 hash as the key to the cache.
Files
Updated by k0kubun (Takashi Kokubun) about 7 years ago
- Status changed from Open to Feedback
Updated by hsbt (Hiroshi SHIBATA) about 7 years ago
- Assignee set to k0kubun (Takashi Kokubun)
Updated by k0kubun (Takashi Kokubun) about 7 years ago
- Related to Feature #14492: iseq loading + caching should be in core added
Updated by k0kubun (Takashi Kokubun) about 7 years ago
- Status changed from Feedback to Rejected
Updated by wanabe (_ wanabe) about 7 years ago
- File 14489.patch 14489.patch added
ActionsLike0