Есть ли простой способ определить во время выполнения, включено ли профилирование J Ruby? - PullRequest
0 голосов
/ 15 апреля 2020

При профилировании только частей моей программы J Ruby я действую следующим образом: я передаю опцию --profile.api J Ruby, а затем выполняю что-то вроде:

require 'jruby/profiler'

....

pdata = JRuby::Profiler.profile { my_code_to_be_profiled }

Если вызывающая программа забывает передать --profile.api, метод profile вызывает исключение.

Теперь я хотел бы проверить во время выполнения, включено ли профилирование или нет. Как это можно сделать хорошим способом? Одна из возможностей - просто попробовать профилировать пустой блок и посмотреть, получу ли я исключение:

require 'jruby/profiler'
profiling_enabled = true # Let's be optimistic
begin
  JRuby::Profiler.profile {}
rescue RuntimeError
  profiling_enabled = false
end

Это работает, но выглядит не очень элегантно. Кто-нибудь может предложить лучшее решение?

...