我花了一些时间学习使用Dtrace和Ruby ..然后在Ruby core for 2.0中找到了新的TracePoint类。 TracePoint是否在dtrace用于监视ruby执行的封面下使用相同的探测器?
答案 0 :(得分:1)
不,它们是使用ruby源中的一组单独的C宏实现的。但是,大多数存在DTrace探测器的地方也会调用EXEC_EVENT_HOOK(这是TracePoint使用的)。在低级别字符串和数组分配中有DTrace探测器没有相应的TracePoint挂钩。还有一个地方调用EXEC_EVENT_HOOK而没有DTrace探测器(线程切换)。
请记住,TracePoint允许您执行任意ruby。这为使用TracePoint提供了更大的灵活性,但代价是比使用DTrace时具有更大的探测效果。