aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2021-05-31 22:00:14 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2021-05-31 22:01:04 -0700
commit028f1887c2bfa50dcfc1b623470d6ab1b880fdde (patch)
tree83a43cc96200796c267da0e80fbe8e32ed4081e8
parent2209e152c0ec2c0548c22b2b14e52007b74a9efb (diff)
downloadruby-028f1887c2bfa50dcfc1b623470d6ab1b880fdde.tar.gz
Change the default --jit-max-cache to 10000
This is useful for large applications like Rails. https://k0kubun.medium.com/ruby-3-jit-can-make-rails-faster-756310f235a
-rw-r--r--NEWS.md5
-rw-r--r--mjit.c2
-rw-r--r--mjit_worker.c4
3 files changed, 7 insertions, 4 deletions
diff --git a/NEWS.md b/NEWS.md
index ac8c30dfb8..6691a0d25d 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -134,7 +134,9 @@ Excluding feature bug fixes.
### JIT
-* `RubyVM::MJIT` is renamed to `RubyVM::JIT`.
+* The default `--jit-max-cache` is changed from 100 to 10000.
+
+* `RubyVM::MJIT` is renamed to `RubyVM::JIT`. [[Feature #17490]]
## Static analysis
@@ -162,5 +164,6 @@ Excluding feature bug fixes.
[Feature #17411]: https://bugs.ruby-lang.org/issues/17411
[Bug #17423]: https://bugs.ruby-lang.org/issues/17423
[Feature #17479]: https://bugs.ruby-lang.org/issues/17479
+[Feature #17490]: https://bugs.ruby-lang.org/issues/17490
[Feature #17744]: https://bugs.ruby-lang.org/issues/17744
[Feature #17762]: https://bugs.ruby-lang.org/issues/17762
diff --git a/mjit.c b/mjit.c
index e1eb913aba..035353ddae 100644
--- a/mjit.c
+++ b/mjit.c
@@ -598,7 +598,7 @@ system_tmpdir(void)
// Minimum value for JIT cache size.
#define MIN_CACHE_SIZE 10
// Default permitted number of units with a JIT code kept in memory.
-#define DEFAULT_MAX_CACHE_SIZE 100
+#define DEFAULT_MAX_CACHE_SIZE 10000
// A default threshold used to add iseq to JIT.
#define DEFAULT_MIN_CALLS_TO_ADD 10000
diff --git a/mjit_worker.c b/mjit_worker.c
index 306c8cbc71..6d9ce697e0 100644
--- a/mjit_worker.c
+++ b/mjit_worker.c
@@ -1396,9 +1396,9 @@ unload_units(void)
void
mjit_worker(void)
{
- // Allow only `max_cache_size / 10` times (default: 10) of compaction.
+ // Allow only `max_cache_size / 100` times (default: 100) of compaction.
// Note: GC of compacted code has not been implemented yet.
- int max_compact_size = mjit_opts.max_cache_size / 10;
+ int max_compact_size = mjit_opts.max_cache_size / 100;
if (max_compact_size < 10) max_compact_size = 10;
// Run unload_units after it's requested `max_cache_size / 10` (default: 10) times.