2012-04-05 4 views
8

Próbuję dowiedzieć się więcej o rozkładzie pracy między procesami mojej aplikacji Erlang. Liczba redukcji realizowanych przez proces jest między innymi jedną z rzeczy, którymi jestem zainteresowany.Erlang Processes Reduction count

Poszukuję więc sposobu na odczytanie liczby redukcji w procesie po jego opuszczeniu. Chociaż uzyskanie tego rodzaju informacji jest dość proste, a procesy wciąż trwają, uzyskanie ich przed lub po ich zakończeniu jest kolejną historią. Mam przejrzałem całą dokumentację, specjalnie dbg: * funkcje, niestety, bezskutecznie. Głównie dlatego, że gdy tylko otrzymałem powiadomienie o wyjściu z procesu, jest już za późno na zrobienie czegoś o tym .

Zmiana kodu całej aplikacji, aby odczytać te wartości przed wyjściem procesów jest niewykonalne. Czy jest jakiś sposób na zrobienie tego? oprócz nurkowania w kodzie VM i instrumentowania go?

Dzięki

Odpowiedz

1

ja nie sądzę, że można dostać reductions dla procesów, ale można dostać rozkład czasu pracy opartych wykonując erlang:trace/3 z running i timestamp opcji. Dostaniesz to, czego chcesz, myślę. Naturalnie musisz zebrać dane i wykonać pewne przetwarzanie po przetworzeniu lub być może just-in-time.

Chciałbym również skorzystać z opcji procs do śladu, aby uzyskać niezbędne meta-informacje, tj rozpoczął, zakończone itp

+0

dobrze, skończyło się robi dokładnie to ... Szkoda, że ​​ślad/3 , a co za tym idzie dbg: nie ma tego rodzaju szczegółowej opcji. – Francesquini