2012-04-05 14 views
8

Tôi đang cố gắng tìm hiểu thêm về phân phối công việc giữa các quy trình của ứng dụng Erlang của tôi. Số lượng giảm được thực hiện bởi một quá trình là, trong số những người khác, một trong những điều tôi quan tâm.Quy trình giảm số Erlang

Vì vậy, tôi đang tìm phương tiện để đọc số lần cắt giảm của quy trình khi thoát. Trong khi nó khá đơn giản để có được loại thông tin này trong khi các quy trình vẫn đang thực thi, nhận chúng ngay trước (hoặc ngay sau đó) chúng thoát là một câu chuyện khác. Tôi có xem xét tất cả các tài liệu, đặc biệt là chức năng dbg: *, không may, không có kết quả. Chủ yếu là bởi vì bất cứ khi nào tôi được thông báo về việc thoát khỏi một quá trình thì đã quá muộn để làm bất cứ điều gì về điều đó.

Thay đổi mã của toàn bộ ứng dụng để đọc các giá trị này trước khi thoát khỏi quy trình không khả thi. Có cách nào để làm điều đó khác ngoài lặn vào mã VM và thiết bị đo đạc nó?

Cảm ơn

Trả lời

1

Tôi không nghĩ rằng bạn có thể nhận reductions cho các quá trình, nhưng bạn có thể nhận được một bản phân phối công việc theo thời gian bằng cách thực hiện một erlang:trace/3 với runningtimestamp tùy chọn. Điều đó sẽ giúp bạn có được những gì bạn muốn tôi nghĩ. Đương nhiên bạn phải thu thập dữ liệu và thực hiện một số xử lý hậu xử lý hoặc có lẽ chỉ trong thời gian.

Tôi cũng sử dụng tùy chọn procs đến dấu vết để có được những meta-thông tin cần thiết, tức là bắt đầu, chấm dứt, vv

+0

Vâng, tôi đã kết thúc làm chính xác điều đó ... Đó là một điều đáng tiếc là dấu vết/3 và do đó dbg: không có loại tùy chọn chi tiết này. – Francesquini