1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

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
This commit is contained in:
Takashi Kokubun 2021-05-31 22:00:14 -07:00
parent 2209e152c0
commit 028f1887c2
No known key found for this signature in database
GPG key ID: 6FFC433B12EE23DD
3 changed files with 7 additions and 4 deletions

View file

@ -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

2
mjit.c
View file

@ -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

View file

@ -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.