2

私は Dtrace と Ruby の使用について少し時間をかけて学びました..その後、2.0 の Ruby コアで新しい TracePoint クラスを見つけました。TracePoint は、dtrace が Ruby の実行を監視するために使用するのと同じプローブを内部で使用しますか?

4

1 に答える 1

1

いいえ、それらは ruby​​ ソースの C マクロの別のセットを使用して実装されています。ただし、DTrace プローブがあるほとんどの場所には、EXEC_EVENT_HOOK への呼び出しもあります (これは TracePoint が使用するものです)。低レベルの文字列と配列の割り当てには、対応する TracePoint フックを持たない DTrace プローブがあります。また、DTrace プローブ (スレッド切り替え) なしで EXEC_EVENT_HOOK を呼び出す場所が 1 つあります。

TracePoint では任意の ruby​​ を実行できることに注意してください。これにより、TracePoint を使用する柔軟性が向上しますが、DTrace を使用する場合よりもはるかにプローブ効果が大きくなります。

于 2013-06-02T19:02:55.217 に答える