2010-08-02 2 views
8

고도의 스레드 프로그램을 가지고 있지만, 이미 모든 메모리 대역폭을 포화 상태로 만들기 때문에 여러 코어에서 확장 할 수 없다고 생각합니다.Windows에서 메모리 대역폭 사용률을 측정하는 방법은 무엇입니까?

얼마나 많은 메모리 대역폭이 사용되고 있는지 측정 할 수있는 도구가 있습니까?

편집 : 전형적인 프로파일은 내가 관심이 아니에요 메모리 누수 및 메모리 할당과 같은 것들을 보여주의하시기 바랍니다 I 메모리 대역폭이 포화 상태인지하는 경우에만 여부입니다..

+2

sysadmin 도구가 필요하면 OS를 지정해야합니다. 프로그래밍 방식 도구를 원한다면 프로그래밍 언어를 지정해야합니다. –

+0

사실, 아니요. 캐시를 통해 CPU로 메인 메모리로 전송되는 메모리 대역폭은 프로그래밍 언어와 별개로 낮은 수준의 개념입니다. – MSalters

+0

의 창. 나는 그것을 반영하기 위해 제목을 편집했습니다. 는 msalters와 일치하지만 프로그래밍 언어는 메모리 대역폭 측정과 아무런 관련이 없습니다. – pdeva

답변

2

응용 프로그램의 메모리 대역폭 사용량을 측정하는 도구를 찾기가 어려울 수 있습니다.

그러나 문제는 메모리 대역폭 문제로 의심되기 때문에 응용 프로그램이 초당 많은 페이지 폴트를 생성하는 경우이를 시도해 볼 수 있습니다. 이는 이론적 인 메모리 대역폭 근처에 있지 않음을 의미합니다.

알고리즘의 캐시 친숙성을 측정해야합니다. 캐시를 쓰러 뜨리면 메모리 대역폭 사용이 심각하게 방해 받게됩니다. Google은 "캐시 미스 측정"방법을 알려주고 있습니다.

2

특정 하드웨어 카운터에서 샘플 이벤트를 수집 할 수있는 Visual Studio 샘플 프로필러를 사용하는 것이 좋습니다. 예를 들어, 캐시 미스시 샘플링을 선택할 수 있습니다. Here's an article explaining how to choose the CPU counter 다른 카운터도 있지만 함께 플레이 할 수 있습니다.

9

최근 인텔 프로세서가있는 경우 인텔 (r) 성능 카운터 모니터를 사용하려고 할 수 있습니다. http://software.intel.com/en-us/articles/intel-performance-counter-monitor/ 메모리 컨트롤러에서 소비되는 메모리 대역폭을 직접 측정 할 수 있습니다.

+0

이 데이터를 소비하고 그것을 인쇄하는 도구가있을 가능성이 있습니까? –

+0

인텔 성능 카운터 모니터가 단종되었습니다. 대신 github의 프로세서 카운터 모니터 포크 (https://github.com/opcm/pcm)에 업데이트 및 새로운 기능을 제공합니다. – wenjianhn

관련 문제