Allow to toggle YJIT stats collection from runtime

For use cases where you want to collect the metrics
for a specific piece of code (typically a web request)
you can have the stats turned off by default and then
turn them on at runtime before executing the code you care
about.
This commit is contained in:
Jean Boussier 2021-08-26 16:11:15 +02:00 коммит произвёл Alan Wu
Родитель 924e3ca84f
Коммит b5a0baf1c0
2 изменённых файлов: 15 добавлений и 0 удалений

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

@ -134,6 +134,14 @@ module YJIT
Primitive.reset_stats_bang
end
def self.stats_enabled?
Primitive.cexpr! 'rb_yjit_opts.gen_stats ? Qtrue : Qfalse'
end
def self.stats_enabled=(enabled)
Primitive.set_stats_enabled(enabled)
end
def self.enabled?
Primitive.cexpr! 'rb_yjit_enabled_p() ? Qtrue : Qfalse'
end

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

@ -808,6 +808,13 @@ reset_stats_bang(rb_execution_context_t *ec, VALUE self)
return Qnil;
}
static VALUE
set_stats_enabled(rb_execution_context_t *ec, VALUE self, VALUE enabled)
{
rb_yjit_opts.gen_stats = RB_TEST(enabled);
return enabled;
}
#include "yjit.rbinc"
#if YJIT_STATS