2010-01-29 1 views
12

내가하고 싶은 것은 리눅스에서 (두 개의) 쓰레드 실행을 묘사하는 일종의 그래프를 만드는 것이다. 나는 스레드가 무엇을하는지, 스케줄이 잡혀있을 때, 그리고 얼마나 오랫동안, 기본적으로 타임 라인을 볼 필요가 없습니다.pthread 스케쥴링하기

저는 지난 몇 시간 동안 인터넷 검색을 통해 pthreads의 일정을 추적하는 방법을 찾았습니다. 불행히도, 내가 발견 한 두 프로젝트는 커널 재 컴파일 (LTTng) 또는 glibc 패치 (NPTL Trace Tool)을 필요로하는데, 둘 다 할 수 없다 (대형, 중앙 관리 시스템, sudo 권한 없음).

이와 같은 다른 방법이 있습니까? 아니면 내가 원하는대로 패치하거나 다시 컴파일 할 수있는 랩톱을 찾아야 할 것입니까?

안부

PS : 나는 두 프로젝트에 연결 한 것이나, 사이트가 저 (명성 < 10)을 허용하지 않습니다. Google에서 프로젝트 이름에 대한 첫 번째 검색 결과가 올바른 것입니다.

답변

1

인텔의 VTune과 같을 수 있습니다.

+0

이것은 매우 유망한 것으로 보입니다. 나는 소프트웨어 패키지를 구입할 수있을 때 이것을 명심해야합니다. – Darhuuk

+0

방금 ​​평가판을 시험해 보았습니다. 뭔가를 간과하지 않으면 Linux 버전의 스레드에 대한 그래픽 트레이스를 얻을 방법이 없습니다. 정말 수치 스럽습니다. 기본적으로 Linux 버전은 Helgrind의 비싼 버전입니다 (http://valgrind.org/docs/manual/hg-manual.html). – Darhuuk

+0

그건 유감이야. 한번도 해보지는 않았지만 흥미로워 보였습니다. 그래프는 꽤 좋았지 만, 리눅스 버전에서 생성 할 수 없다면별로 흥미롭지 않습니다. –

3

계측 된 glibc/libpthread.so를 빌드 할 때 수퍼 유저 권한이 필요하지 않습니다. NPTL Trace Tool의 부분 인 ptt_trace 프로그램은 계측 라이브러리를 사용하여 프로그램을 실행합니다.

+0

언급 해 주셔서 감사합니다. NPTL TT를 다시 살펴 보았지만 2006 년 이래로 프로젝트가 진행되지 않았으며 새로운 glibc 버전을 패치하는 것이 효과가없는 것 같습니다. – Darhuuk

1

도 (소스 포지에) pthreadw라는 도구가

그것의 전형적인 시간은 잠금 장치, 조건 변수와 함께 연주 보냈다처럼는 pthread 라이브러리의 일반적인 함수 호출 및 보고서 통계를 차단 래퍼 라이브러리, ... 현재 추적을 내보낼 수 없으며 텍스트 요약 보고서 만 사용할 수 있습니다.