2014-01-10 7 views
2

-O2 -rtsopts -threaded -eventlog+RTS -N2 -ls으로 컴파일 된 기준 벤치 마크 (forkIO 또는 par)를 실행하면 실제 작업 (GC가 아닌)이 두 코어에 분산된다는 것을 알게되었습니다. 기준 소스의 빠른 grep은 병렬 처리가 시작된 곳을 표시하지 않았습니다.여러 코어에서 동시성을 프로파일 링하는 데 기준을 사용할 수 있습니까?

몇 가지 신중한 벤치마킹을하고 싶습니다. 두 스레드 간의 MVar에 대한 논쟁적인 업데이트; (예를 들어, 모든 병렬 작업이 테스트 사이에 발생하는 경우) 기준을 사용하여 정확하게 수행 할 수 있습니까?

+0

벤치 마크 시작 시점에 이벤트 로그에 알림을 쓸 수 있습니까? –

+0

@ JohnL 좋은 제안; 내가 시도하고 그것은 테스트 코드 실행 중에 어떤 병렬 처리를하려고하지 않는 것처럼 보입니다. – jberryman

답변

1

테스트 할 IO 작업 전후에 traceEventIO을 붙였으며 테스트 코드 실행 기간 동안 완전히 단일 스레드로 보였으므로 좋을 것 같습니다.