profiling - 是否有一种简单的方法可以在运行时检测是否启用了 JRuby 分析?
问题描述
当只分析我的 JRuby 程序的一部分时,我进行如下操作:我将选项传递--profile.api
给 JRuby,然后执行以下操作:
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
这可行,但看起来不是很优雅。有人可以提供更好的解决方案吗?
解决方案
这些方面的东西应该起作用:
if JRuby.runtime.instance_config.is_profiling
pdata = JRuby::Profiler.profile { my_code_to_be_profiled }
end
推荐阅读
- asp.net-web-api - 尝试从 .net 框架 Web api 下载时 Excel 文件已损坏
- scala - 按键聚合数据集并列出其余值
- javascript - 如何在 React 中的按钮单击事件上发出 axios 获取请求?
- git - 将文件上传到 Elastic Beanstalk Quellbundle
- javascript - 在 react 项目中验证和验证 otp 后调用 props 函数
- highcharts - 我想为某些特定数据在高图表中的堆栈图中添加边框半径
- python - 我可以从我的 Mac 成功 ping 到 Win10。我无法从我的 Mac 使用 chrome/edge 浏览器访问 jupyter。我该怎么办?
- python - 强制性成员函数参数 - 对 Python 编译器和/或 PyDev 的期望很高
- git - IntelliJ - 未安装 Git:无法识别 git 可执行文件的版本:无响应
- windows - 通过 PowerShell 编辑 Windows 10 本地组策略