2
我想知道是否有任何(高性能)的方式來識別事件循環中的一個獨特的勾號?在node.js中,是否有任何方法可以識別唯一的調用堆棧/滴答間隔?
我不想做像什麼: 1)拋出一個異常,收集調用堆棧,分析它,哈希,或 2)子過程的任何操作系統或外部進程收集進程/線程ID爲獨特
它應該是一個語言結構。我寧願API將
process.tickId
我想知道是否有任何(高性能)的方式來識別事件循環中的一個獨特的勾號?在node.js中,是否有任何方法可以識別唯一的調用堆棧/滴答間隔?
我不想做像什麼: 1)拋出一個異常,收集調用堆棧,分析它,哈希,或 2)子過程的任何操作系統或外部進程收集進程/線程ID爲獨特
它應該是一個語言結構。我寧願API將
process.tickId
添加:
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
。我測試了這個,但我不知道它是否泄漏了內存。
「調用堆棧」和「時間間隔」是如何關聯的? – 2012-06-06 06:41:52
node.js原語process.nextTick將添加一個函數,以在事件循環中的下一個「打勾」處被調用。此時,一個新的調用堆棧將由事件循環啓動。所以如果你在調用堆棧中有兩個可能的故障點,它們將共享兩件事:1)調用堆棧的部分和2)事件循環的獨特迭代(因爲JS是單線程的) – Ilya
然後'myTickCounter ++'? – 2012-06-08 23:43:04