2010-03-05 1 views
8

필자는 Windows에서 VTune (Solaris에서는 sunstudio 내에서 dbx)을 사용하여 프로그램을 재구성하지 않고 프로파일 링 할 수 있으며 프로파일 링 중에는 프로그램이 정상 속도와 똑같은 속도로 실행됩니다. 이 두 가지 기능 모두 나에게 많은 시간을 절약 해주었습니다.재건없이 Linux 플랫폼에서 프로그램을 프로파일하는 방법은 무엇입니까?

이제 Linux 플랫폼에서 사용할 수있는 몇 가지 무료 도구가 있는지 알고 싶습니다. 동일한 작업을 수행 할 수 있습니다. 샘플링을 기반으로 프로파일 링 도구가 필요하다고 생각합니다. VTune은 훌륭하지만 비쌉니다 ... 저는 gprof와 valgrind에 대해 들어 봤습니다. 그러나 gprof가 프로그램을 필요로하는 것처럼 보이기 때문에 (프로그램을 다시 빌드해야 함) valgrind가 프로그램 실행을 상당히 느리게 만듭니다. (valgrind의 소개에서, Cachegrind는 정상보다 느리게 약 20-100 배 프로그램을 실행하고 프로파일 링해야하는 Callgrind는 Cachegrind를 기반으로 함)

프로파일 링을 위해 함수 호출의 실행 시간을 알아야합니다. 성능 저하가 발생하는 곳을 찾을 수 있습니다. 실제로 저는 Cachegrind가 제공 한 많은 저수준 프로파일 링 정보가 필요하지 않습니다 ...

답변

5

oprofile은 꽤 좋지만 설치가 어려울 수 있습니다. 또한 프로그램을 다시 작성할 필요가 없습니다.

+0

그래 ... 그게 내가 필요한 것 같아.하지만 나는 루트 계정이 필요하다고 생각해. 그렇지? – superb

+0

예, 루트를 설정해야합니다. 또는 sudoers 파일의 설정 방법에 따라 sudo. 가상 머신을 사용하는 것이 좋겠지 만 VM에서 프로파일 링을하는 것은 나쁜 생각처럼 보입니다. VM에서 실행하면 병목 현상이 물리적 머신에서 실행될 때와 같지 않을 수 있습니다. 시스템에 뿌리가 있기를 바랍니다. – George

+0

알았어요. oprofiler에 대한 일부 문서를 읽은 후에는 하드웨어 카운터를 수집하기 위해 커널을 필요로하므로 프로그램을 빠르게 프로파일 링 할 수 있으므로 루트 권한을 구성해야합니다. 공용 시스템을 사용하고 있었기 때문에 루트 액세스 권한을 얻는 것이 쉽지 않을 수 있으며 프로파일 링은 해당 시스템의 성능에 영향을 미칩니다. 그래서 저는 Valgrind가 아마도 최선의 선택이라고 생각합니다 ... – superb

0

oprofile보다 더 좋은 옵션은 Zoom입니다. Mac OS X의 Shark과 비슷합니다. 상업용 (199 달러)이지만 www.rotateright.com에서 무료 평가판을 다운로드 할 수 있습니다.

1

Paul과 동의하면 Zoom이 아마도 당신이 지불 할 수있는 최고의 Linux 프로파일 러라고 생각합니다.

그러나 real results의 경우 프로필러가 개발되기 전에 사용하고있는 this simple method에 의존합니다.

1

Performance Counters for Linux은 커널 2.6.31 이상에서 사용할 수있는 새로운 도구입니다. valgrind 또는 OProfile보다 (프로그램 및 시스템 전체에) 방해가 적습니다.