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 语句一起使用吗?
ios开发之--/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No suc
部署老系统出现的问题Gem::InstallError: net-ssh requires Ruby version >= 2.0
未读取 database.yml 中的 ENV 变量(Rails 4.2.0、RubyMine 7、Postgres、Ruby 2.2.0、DotEnv)