YJIT: reduce default exec-mem-size to 64MiB (#9054)

This commit is contained in:
Maxime Chevalier-Boisvert 2023-11-28 15:04:33 -05:00 коммит произвёл GitHub
Родитель 982641939c
Коммит 6310522a9a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -168,7 +168,7 @@ YJIT supports all command-line options supported by upstream CRuby, but also add
- `--yjit-call-threshold=N`: number of calls after which YJIT begins to compile a function (default 30) - `--yjit-call-threshold=N`: number of calls after which YJIT begins to compile a function (default 30)
- `--yjit-cold-threshold=N`: number of global calls after which an ISEQ is considered cold and not - `--yjit-cold-threshold=N`: number of global calls after which an ISEQ is considered cold and not
compiled, lower values mean less code is compiled (default 200000) compiled, lower values mean less code is compiled (default 200000)
- `--yjit-exec-mem-size=N`: size of the executable memory block to allocate, in MiB (default 64 MiB in Ruby 3.2, 128 MiB in Ruby 3.3+) - `--yjit-exec-mem-size=N`: size of the executable memory block to allocate, in MiB (default 64 MiB)
- `--yjit-stats`: print statistics after the execution of a program (incurs a run-time cost) - `--yjit-stats`: print statistics after the execution of a program (incurs a run-time cost)
- `--yjit-stats=quiet`: gather statistics while running a program but don't print them. Stats are accessible through `RubyVM::YJIT.runtime_stats`. (incurs a run-time cost) - `--yjit-stats=quiet`: gather statistics while running a program but don't print them. Stats are accessible through `RubyVM::YJIT.runtime_stats`. (incurs a run-time cost)
- `--yjit-trace-exits`: produce a Marshal dump of backtraces from specific exits. Automatically enables `--yjit-stats` - `--yjit-trace-exits`: produce a Marshal dump of backtraces from specific exits. Automatically enables `--yjit-stats`

Просмотреть файл

@ -81,7 +81,7 @@ pub struct Options {
// Initialize the options to default values // Initialize the options to default values
pub static mut OPTIONS: Options = Options { pub static mut OPTIONS: Options = Options {
exec_mem_size: 128 * 1024 * 1024, exec_mem_size: 64 * 1024 * 1024,
no_type_prop: false, no_type_prop: false,
max_versions: 4, max_versions: 4,
num_temp_regs: 5, num_temp_regs: 5,
@ -104,7 +104,7 @@ static YJIT_OPTIONS: [(&str, &str); 8] = [
("--yjit-stats", "Enable collecting YJIT statistics"), ("--yjit-stats", "Enable collecting YJIT statistics"),
("--yjit-trace-exits", "Record Ruby source location when exiting from generated code"), ("--yjit-trace-exits", "Record Ruby source location when exiting from generated code"),
("--yjit-trace-exits-sample-rate", "Trace exit locations only every Nth occurrence"), ("--yjit-trace-exits-sample-rate", "Trace exit locations only every Nth occurrence"),
("--yjit-exec-mem-size=num", "Size of executable memory block in MiB (default: 128)"), ("--yjit-exec-mem-size=num", "Size of executable memory block in MiB (default: 64)"),
("--yjit-code-gc", "Run code GC when the code size reaches the limit"), ("--yjit-code-gc", "Run code GC when the code size reaches the limit"),
("--yjit-call-threshold=num", "Number of calls to trigger JIT"), ("--yjit-call-threshold=num", "Number of calls to trigger JIT"),
("--yjit-cold-threshold=num", "Global call after which ISEQs not compiled (default: 200K)"), ("--yjit-cold-threshold=num", "Global call after which ISEQs not compiled (default: 200K)"),