2012-06-06 44 views
2

我想知道是否有任何(高性能)的方式來識別事件循環中的一個獨特的勾號?在node.js中,是否有任何方法可以識別唯一的調用堆棧/滴答間隔?

想做像什麼: 1)拋出一個異常,收集調用堆棧,分析它,哈希,或 2)子過程的任何操作系統或外部進程收集進程/線程ID爲獨特

它應該是一個語言結構。我寧願API將

process.tickId 
+0

「調用堆棧」和「時間間隔」是如何關聯的? – 2012-06-06 06:41:52

+0

node.js原語process.nextTick將添加一個函數,以在事件循環中的下一個「打勾」處被調用。此時,一個新的調用堆棧將由事件循環啓動。所以如果你在調用堆棧中有兩個可能的故障點,它們將共享兩件事:1)調用堆棧的部分和2)事件循環的獨特迭代(因爲JS是單線程的) – Ilya

+0

然後'myTickCounter ++'? – 2012-06-08 23:43:04

回答

0

添加:

Handle<Value> tick = process->Get(String::New("tickId")); 
if (!tick->IsNumber()) { 
    tick = Number::New(0); 
} 
process->Set(String::New("tickId"), Number::New(tick->NumberValue() + 1)); 

到每個的MakeCallback的情況node.cc將提供計數器tickId。我測試了這個,但我不知道它是否泄漏了內存。

相關問題