2013-02-14 20 views
16

Có thể xem nhanh vòng lặp sự kiện để chẩn đoán không?node.js Chẩn đoán vòng lặp sự kiện

Tôi muốn biết có bao nhiêu sự kiện hiện đang chờ thực thi (ngoại trừ setTimeout/interval).

Cập nhật: Tôi muốn thực hiện việc này từ bên trong quy trình nút đang chạy.

+0

câu hỏi thú vị, tôi sẽ đi xung quanh để tìm hiểu xem có ai có bất kỳ manh mối nào, không nhìn vào mã của nút. –

+0

Dtrace có giúp được không? Tôi biết nó được sử dụng để nút hồ sơ. – booyaa

+0

http://blog.nodejs.org/2012/04/25/profiling-node-js/ – TheBronx

Trả lời

10

Cập nhật cho nodejs 0.10 với setImmediate()

Trong khi tôi đã không thể tìm ra số sự kiện chờ đợi trong hàng đợi tôi tìm thấy một thước đo sức khỏe mà có thể có ích:

var ts=Date.now(); 
setImmediate(function() 
{ 
    var delay=Date.now()-ts; 
}); 
Sự chậm trễ

sẽ chứa mili giây mất từ ​​việc xếp hàng sự kiện để thực thi nó.

Điều này cũng tính đến các sự kiện chuyên sâu về CPU (không thể thực hiện bằng cách chỉ xem số sự kiện).

Bản thân phép đo cũng sẽ ảnh hưởng đến hàng đợi sự kiện nhưng điều này sẽ có chi phí thấp hơn nhiều so với một trình lược tả đầy đủ.

+2

sẽ là tuyệt vời nếu chúng tôi thực sự có thể 'nhìn thấy' sự kiện que ... Tôi cho rằng bạn không bao giờ tìm thấy một cách để làm điều này? – tbarbe

0

Tác nhân của NodeFly giám sát hiệu suất tổng thể của Node.js bao gồm Vòng lặp sự kiện. Bạn có thể đọc một vài entry Taling về chức năng này:

http://blog.nodefly.com/post/41119237822/monitoring-the-event-loop-in-node-js

http://blog.nodefly.com/post/41201793716/just-another-friday-night-chat-scaling-node-js-and

Bạn có thể tìm và thử các đại lý ở đây:

http://www.nodefly.com

+1

Dường như nó làm một cái gì đó tương tự như những gì tôi đã mô tả trước đây: "Các đại lý NodeFly vá các chức năng nextTick để có được dữ liệu thời gian cho vòng lặp sự kiện." – laktak