Ruby 2.0 中的新 Tracepoint API 是不是使用 dtrace 使用的相同探针?

Posted

技术标签:

【中文标题】Ruby 2.0 中的新 Tracepoint API 是不是使用 dtrace 使用的相同探针?【英文标题】:Does the new Tracepoint API in Ruby 2.0 use the same probes that dtrace uses?Ruby 2.0 中的新 Tracepoint API 是否使用 dtrace 使用的相同探针? 【发布时间】:2013-06-02 02:24:55 【问题描述】:

我花了一些时间学习如何使用 Dtrace 和 Ruby。然后在 Ruby 2.0 的核心中找到了新的 TracePoint 类。 TracePoint 是否使用与 dtrace 用于监视 ruby​​ 执行的相同探针?

【问题讨论】:

【参考方案1】:

不,它们是在 ruby​​ 源代码中使用一组单独的 C 宏实现的。然而,大多数有 DTrace 探测的地方也会调用 EXEC_EVENT_HOOK(这是 TracePoint 使用的)。在低级字符串和数组分配中存在 DTrace 探测器,它们没有相应的 TracePoint 挂钩。还有一个地方调用了 EXEC_EVENT_HOOK 而没有 DTrace 探测(线程切换)。

请记住,TracePoint 允许您执行任意 ruby​​。这为您使用 TracePoint 提供了更大的灵活性,但代价是探测效果比使用 DTrace 时大得多。

【讨论】:

以上是关于Ruby 2.0 中的新 Tracepoint API 是不是使用 dtrace 使用的相同探针?的主要内容,如果未能解决你的问题,请参考以下文章

procs 可以与 Ruby 2.0 中的 case 语句一起使用吗?

ruby 中的新日期时间而不是字符串

ios开发之--/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No suc

《神盾局特工》中的新角色Ruby,漫画原型会是她吗?

部署老系统出现的问题Gem::InstallError: net-ssh requires Ruby version >= 2.0

未读取 database.yml 中的 ENV 变量(Rails 4.2.0、RubyMine 7、Postgres、Ruby 2.2.0、DotEnv)