From bd13fcbcdd21829fce4a22c849458efdf4d8367e Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 15 Aug 2024 13:22:02 -0700 Subject: [PATCH 1/2] Print YJIT code size besides RSS --- harness/harness-common.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/harness/harness-common.rb b/harness/harness-common.rb index 1720b1d0..996fea9d 100644 --- a/harness/harness-common.rb +++ b/harness/harness-common.rb @@ -98,8 +98,17 @@ def return_results(warmup_iterations, bench_iterations) yjit_bench_results["maxrss"] = maxrss end - if defined?(RubyVM::YJIT) && RubyVM::YJIT.stats_enabled? - yjit_bench_results["yjit_stats"] = RubyVM::YJIT.runtime_stats + if defined?(RubyVM::YJIT) && RubyVM::YJIT.enabled? + yjit_stats = RubyVM::YJIT.runtime_stats + formatted_stats = proc { |key| "%10s" % yjit_stats[key].to_s.reverse.scan(/\d{1,3}/).join(',').reverse } + puts "inline_code_size: #{formatted_stats[:inline_code_size]}" + puts "outlined_code_size: #{formatted_stats[:outlined_code_size]}" + puts "code_region_size: #{formatted_stats[:code_region_size]}" + puts "yjit_alloc_size: #{formatted_stats[:yjit_alloc_size]}" + + if RubyVM::YJIT.stats_enabled? + yjit_bench_results["yjit_stats"] = yjit_stats + end end write_json_file(yjit_bench_results) From cc5c8153b47d8eb7a3da32f10cad8cd5c40f4826 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 15 Aug 2024 14:35:16 -0700 Subject: [PATCH 2/2] Always keep YJIT stats --- harness/harness-common.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/harness/harness-common.rb b/harness/harness-common.rb index 996fea9d..3d55ed67 100644 --- a/harness/harness-common.rb +++ b/harness/harness-common.rb @@ -100,15 +100,13 @@ def return_results(warmup_iterations, bench_iterations) if defined?(RubyVM::YJIT) && RubyVM::YJIT.enabled? yjit_stats = RubyVM::YJIT.runtime_stats - formatted_stats = proc { |key| "%10s" % yjit_stats[key].to_s.reverse.scan(/\d{1,3}/).join(',').reverse } + yjit_bench_results["yjit_stats"] = yjit_stats + + formatted_stats = proc { |key| "%10s" % yjit_stats[key].to_s.reverse.scan(/\d{1,3}/).join(",").reverse } puts "inline_code_size: #{formatted_stats[:inline_code_size]}" puts "outlined_code_size: #{formatted_stats[:outlined_code_size]}" puts "code_region_size: #{formatted_stats[:code_region_size]}" puts "yjit_alloc_size: #{formatted_stats[:yjit_alloc_size]}" - - if RubyVM::YJIT.stats_enabled? - yjit_bench_results["yjit_stats"] = yjit_stats - end end write_json_file(yjit_bench_results)