2015-01-09 5 views
4

대용량 C++ 응용 프로그램을 프로파일 링하고 가장 많이 가져 오는 데이터 (또는 메모리 영역)를 결정하려고합니다. 기본적으로 L2/L3 캐시에 저장할 내용을 결정하기 위해 프로세서의 MFU 캐시 알고리즘과 같은 작업을 수행 할 수 있기를 원합니다. 놀랍게도이 작업을 수행하려고 시도한 사람에게는 온라인 정보가 거의 없습니다.가장 자주 사용되는 메모리 영역을 찾는 방법은 무엇입니까?

편집 :

편집 2 복사기하는 MRU를 변경 : 명확히하기 위해, 나는 주소 또는 주소에서 지적하고있는 데이터 구조가 필요합니다.

+0

어떤 프로세서 cachegrind을라고? x86이라면 VTune을 이미 사용하셨습니까? –

+0

x86 (windows)과 powerpc (내장 vxworks)를 모두 대상으로합니다. vTune이 제공해야 할 것을 살펴 보겠습니다. –

+0

그냥 쪽지를 - 가장/최근 * 사용되는 대부분의/적어도 * 자주 사용되는 차이점이 있습니다 – Leeor

답변

2

Pin tool을 사용하여 모든 메모리 액세스를 기록하고 캐시 적중/실패를 계산할 수 있습니다.

+0

나는 올바른 답변을 가지고 있다고 생각한다. [Pin Memory Address Trace] (https://software.intel.com/sites/landingpage/pintool/docs/62141/Pin/html/index.html#MAddressTrace) 너무 나쁘다. 멋진 GUI로 패키지되지 않습니다. –

1

valgrind가이 작업을 수행 할 수 있습니다. 플러그인이 필요하며, 이미 있으면 필요하지 않습니다.

편집 : 그것은

관련 문제