Project

General

Profile

Feature #14489

MJIT needs a reusable cache

Added by sam.saffron (Sam Saffron) over 2 years ago. Updated over 2 years ago.

Status:
Rejected
Priority:
Normal
Target version:
-
[ruby-core:85623]

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

14489.patch (29.8 KB) 14489.patch wanabe (_ wanabe), 03/07/2018 01:02 PM

Related issues

Related to Ruby master - Feature #14492: iseq loading + caching should be in coreOpenko1 (Koichi Sasada)Actions

Also available in: Atom PDF