2014-01-11 4 views
11

현재 Haskell 서버를 프로파일 링하려고합니다. 서버는 영원히 실행되므로 고정 된 시간 동안 프로파일 링 보고서를 원합니다. 난 그냥 3 분 동안 프로그램을 실행하고, 정중하게 종료하도록 요청했지만 어떻게 든 haskell 프로파일 러는 용어 신호를 따르지 않고 불완전한 데이터를 생성합니다.고정 된 시간 동안 Haskell 프로파일 링

내 첫 번째 시도 :

timeout --signal SIGTERM 3m ./actionsDemo +RTC -hc -RTS -p -K100M 

누구나 어떤 생각이 얼마나 깔끔하게이 서버를 프로파일 링?

+0

필자는 haskell 런타임을 종료하는 '요청'이 있으면 프로파일 러가 모든 데이터를 디스크에 쓰지 않을 것이라고 생각합니다. 3 분을 기다린 스레드를 포크하고 내부에서 프로그램을 닫을 수 있습니까? 청취자는 일부 글로 z 플래그에 대해 추가 점검을 수행하면됩니다. – user2407038

+1

제안 해 주셔서 감사합니다. 프로파일 링하는 코드를 편집하지 마십시오. – windwarrior

+0

'-p' 프로파일 링, 힙 프로파일 링 또는 둘 다에 관심이 있으십니까? – crockeea

답변

2

실행중인 프로그램의 힙 프로파일을 가져 오는 방법은 here, 5.5.3 절에 잘 설명되어 있습니다. 즉, 마지막 "불완전한"샘플을 제거한 다음 평소와 같이 진행하면됩니다.

hp2ps가이 문제를 자체적으로 처리하도록하려면 trac ticket이 적합하지만 아직 준비가되지 않은 것 같습니다.

시간/할당 프로파일 링에 대한 답변이 없습니다.

+0

네, 그게 제가 생각한 것입니다.하지만 불행히도 위의 명령을 사용하고 3 분에서 샘플을 뺀 것보다 약 6 초 밖에 저장하지 않는 불완전한 라인을 제거하면 문제가 해결되지 않습니다. – windwarrior

+0

그건 이상합니다. 수동으로 .hp 파일을 편집 해 보셨습니까? 그것은 나를 위해 작동합니다. – crockeea

+0

파일에 대한 링크를 게시 할 수 있습니까? '-hc' 프로파일을 실행할 때, 나의 파일은 기본적으로 10 분의 1 초마다 항목을 가지고 있습니다. – crockeea

관련 문제