2013-08-19 4 views
3

하스켈의 파서 결합 자 라이브러리에서 작성한 파서를 프로파일하는 표준 방법은 무엇입니까?하스켈에서 파서 결합 자 라이브러리를 사용하여 작성한 파서 프로파일 링

저는 현재 uu-parsinglib을 사용하고 있습니다 만, Parsec과 같은 다른 파서 연결자 라이브러리를 프로파일 링하는 방법을 알고 싶습니다.

지금 당장 필자는 파서를 작성 했으므로 속도가 느리고 많은 양의 RAM을 먹는다. (600 라인 입력 텍스트의 경우 1Gb 이상의 RAM을 구문 분석하는 데 약 5 초가 걸리므로 그것을 개선 할 수있는 방법을 조사하고 싶다.)

+1

문자열 및 목록 유형을 사용하고 계십니까? 그것은 정말로 메모리 집약적 일 수 있습니다. – TallerGhostWalt

+0

"내 프로그램이 느리고, 작은 가져 오기로 XXX GB의 RAM을 먹습니다."일반적으로 어딘가에 게으름 버그를 암시합니다. 이것은 _parser_와는 아무런 상관이 없지만 대신 구문 분석 결과를 사용하는 방법과 관련이 있습니다. – MathematicalOrchid

+0

@MathematicalOrchid : 터미널에 AST 인쇄 중입니다. –

답변

2

시도 힙 프로파일 링 : 프로필이 산처럼 외모와 메가 바이트 인 경우

$ ./prog +RTS -K128M -hc -p 
$ hp2ps -c prog.hp 

이 아마 당신이 먼저 큰 데이터 구조를 구축 한 후 사용으로 볼 수 있었다 다음 그것을 감소 ​​(및 축적 기 또는 메모).

자세한 정보 : http://book.realworldhaskell.org/read/profiling-and-optimization.html