2013-01-09 3 views
2

eprof를 사용하여 Erlang 응용 프로그램의 프로파일을 작성하려고합니다.EProf Erlang Profiling

A-- B - dict 
|- C - dict 

실행중인 프로세스입니다 결과는 의존성이 같은 조금 보이는 할 수있어, 내가 프로파일에서 가장 관심 모듈이 직접 DICT를 사용하지 않지만 대부분의 시간은 DICT 모듈에 소요되는 것을 보여 (gen_server)를 사용하고 둘 다 dict를 사용하는 모듈 B와 C를 사용합니다. 어떤 모듈이 dict를 가장 많이 사용하고 있는지 어떻게 알 수 있습니까?

+0

을 보냈다 위치를 찾을 수 있도록보기의 예입니다? 각 방법 (B/dict + C/orddict, B/orddict + C/dict)을 시도하면 질문에 대한 충분한 정보를 얻을 수 있습니다. – macintux

+0

흥미로운 접근 방식이지만 fprof를 사용하여 코드를 변경하지 않고이 기능을 처리하는 데는 총 시간 (함수 호출 포함) 및 gc 및 프로세스 일시 중단과 같은 기타 유용한 정보가 표시됩니다. 다른 사람이 추가 할 사람이 있으면이 질문을 열어 두십시오. –

+0

당신은 [이 escript] (https://github.com/isacssouza/erlgrind)를 사용해 볼 수 있습니다. fprof 출력을 callgrind 출력으로 변환하고 kcachegrind 또는 이와 유사한 것으로 시각화했습니다. – Isac

답변

1

비슷한 문제를 해결하기 위해 dbg 추적 형식에서 callgrind 형식으로 변환기를 만들었습니다. 시간 비용 정보가 포함 된 함수 호출 계층 구조의 시각화 프로그램으로 kcachegrind를 사용하는 데 도움이되었습니다. 여기

https://github.com/virtan/eep

는 시간이 대신 orddict 사용하는 두 개의 모듈 중 하나를 조정 시도 할 수 https://raw.github.com/virtan/eep/master/doc/sshot6.png