2014-10-22 3 views
5

matlab에 대한 메모리 사용량을 모니터하는 방법을 찾고 있었지만 그렇게 할 수 없었습니다. 내가 관심있는 것은 내장 함수를위한 피크 메모리이며,이 함수들은 이미 컴파일되어 있기 때문에 matlab 프로파일 러로 측정 할 수 없다.matlab에서 메모리 모니터

피크 메모리 문제는 거의 matlab에 문서화되어 있지 않습니다. 즉, 메모리 사용량을 직접 모니터링해야하는 문제를 찾아야합니다. 이미 Windows에서 리소스 관리자를 사용하려고했지만 문제를 발견했습니다. 나는 문제가 없지만 샘플링 속도가 낮다는 것을 의미 할 수도 있습니다. 나는 윈도우 7을 사용한다.

이 질문은 matlab에만 관련이 없지만, matlab에 문제가 있으므로 필자는이 태그를 붙일 것이다.

+0

Matlab의 ['memory'] (http://es.mathworks.com/help/matlab/ref/memory.html) 함수는 어떻게됩니까? –

+0

@LuisMendo 아직 시도하지는 않았지만 어쨌든 그것이 효과가 있을지는 의문입니다. 것은 (예를 들어, 가능하다면 로그) 메모리를 동적으로 측정 할 수 있기를 원한다는 것입니다. 예를 들어, matlab에 내장 된 컴파일 된 함수 내에서 최대 메모리를 찾아야합니다. 어떤 이유로 벡터의 두 요소의 최소 곱을 찾고 싶다고 가정합니다. 예를 들어 행렬 곱셈 (v * v. ')의 도움으로 해결할 수 있습니다. 여기서 v는 [Nx1]입니다. 그러나 입력 및 출력이 중간 정도이더라도 잠재적으로 거대한 피크 메모리를 생성합니다. 함수가 내장 된 경우 프로파일 러에서 이것을 볼 수 없습니다. – patrik

+0

맞습니다. operaton (행렬 곱셈)이 실행되는 동안'memory'를 실행해야합니다. 아마도 '타이머'를 사용하여'메모리 '를 주기적으로 호출 할 수 있습니까? 기간이 너무 짧으면 중간에 작업이 중단 될 수 있습니다. –

답변

4

시간이 지남에 따라 Matlab의 메모리 사용을 모니터링하는 Matlab File Exchange에는 nice script이 있습니다. 기본적으로 백그라운드에서 지정된 시간 간격으로 그림을 업데이트합니다. (Matlab의 memory 함수에 의존하기 때문에 Windows 시스템에서만 작동합니다.)

memory은 Matlab 프로세스에서 사용하는 총 메모리를 측정하므로이 또한 필요합니다. 내장 기능을 포함하십시오.

그러나 Matlab이 과부하 일 때 다른 기능이 실행 우선 순위를 취할 수 있으며 그림이 원하는대로 업데이트되지 않을 수 있습니다. 이 경우, MATLAB 외부의 메모리 모니터링을 고려해야합니다. perfmon 또는 Process Explorer 자세한 내용은 this question을 참조하십시오.

+0

Perfmon은 매 초마다 업데이트하는 것처럼 보입니다. 그 문제를 해결할 수 있습니까? 또한 탐색기 업데이트를 더 빨리 처리 할 수 ​​있습니까? – patrik

+0

나는 요즘 그 도구를 사용하지 않고 있습니다. 저는 리눅스와 OS X에서 대부분 작업하고 있습니다. 그래서 잘 모르겠습니다. 그러나 피크 메모리 할당이 짧은 시간 간격으로 발생하면 모니터 프로그램에서 동일한 코어에서 실행 중이면 매우 작은 새로 고침 간격을 사용하더라도이를 볼 수 없을 수도 있습니다. 다른 코어에서 실행되는지 확인하십시오. – pederpansen

관련 문제