2012-04-05 4 views
8

Я пытаюсь узнать больше о распределении работ между процессами моего приложения Erlang. Количество сокращений, выполняемых процессом , является, в частности, одной из вещей, которые меня интересуют.Erlang Processes Reduction count

Так что я ищу средство для чтения количества сокращений процесса , когда он выходит. Хотя довольно просто получить этот вид информации, пока процессы все еще выполняются, получая их незадолго до (или сразу после), они выходят из другой истории. У меня посмотрел всю документацию, особенно dbg: * функции, к сожалению, безрезультатно. В основном потому, что всякий раз, когда я получаю уведомление о выходе из процесса, уже слишком поздно что-то делать об этом.

Изменение кода всего приложения для чтения этих значений до выхода из процесса невозможно. Есть ли способ сделать это , кроме погружения в код VM и его инструментария?

Благодаря

ответ

1

Я не думаю, что вы можете получить reductions для процессов, но вы могли бы получить распределение рабочего времени на основе, делая erlang:trace/3 с running и timestamp вариантов. Думаю, ты получишь то, что хочешь. Естественно, вам нужно собирать данные и выполнять некоторую пост-обработку или, возможно, своевременную обработку.

Я хотел бы также использовать опцию procs следу, чтобы получить необходимую метаинформацию, то есть начала, прекращены и т.д.

+0

Ну, я в конечном итоге делает именно это ... Жаль, что след/3 , и, следовательно, dbg: не имеют такого детального варианта. – Francesquini