2014-10-22 85 views
5

我一直在尋找一種方法來監視matlab的內存消耗,但一直無法這樣做。我感興趣的是內置函數的峯值內存,無法用matlab分析器測量,因爲這些函數已經編譯完成。在matlab中監視內存

峯值內存問題很少記載在MATLAB中,這意味着,找出問題是什麼我需要監視內存的使用情況自己。我已經嘗試在Windows中使用資源管理器,但是我發現有問題。我可以說沒有問題,但也可能意味着採樣率很低。我使用Windows 7

這個問題可能不會只涉及MATLAB,但因爲我在MATLAB的問題,我將標記它如此。

+0

Matlab的['memory'](http://es.mathworks.com/help/matlab/ref/memory.html)函數呢? – 2014-10-22 11:34:52

+0

@LuisMendo我還沒有嘗試過,但不知何故,我懷疑它會起作用。問題是我希望能夠動態地測量(並且如果可能的話)記錄內存,以便例如在matlab中編譯內置函數中找出峯值內存。假設你出於某種原因想要找​​到矢量的任何兩個元素的最小乘積。這可以例如在矩陣乘法(v * v。')的幫助下解決,其中v是[Nx1]。但是,即使輸入和輸出適中,這也會產生潛在的巨大峯值內存。如果功能是內置的,我無法使用Profiler – patrik 2014-10-22 13:14:19

+0

查看此內容您說得對。當運算(矩陣乘法)運行時,您將不得不發出「內存」。也許'定時器'可以用來定期調用'內存'?如果時間足夠短,那麼這樣的呼叫可能會中斷您在中間的操作 – 2014-10-22 13:45:46

回答

4

有Matlab的文件交換,監控Matlab的內存使用量隨着時間的推移nice script。它基本上以指定的時間間隔在後臺更新數字。 (因爲它依賴於Matlab的memory函數,所以不幸的是只能在Windows系統上工作。)

我不知道這是否適合您的需求,但由於memory測量Matlab過程使用的總內存,所以也應該包括內置函數。

然而,當Matlab是在重負載下,其他功能可能需要執行的偏好,並根據需要在數字可能不會得到更新。在這種情況下,我們應該考慮使用諸如例如perfmonProcess Explorer,參見this question以獲得更詳細的論述。

+0

Perfmon似乎每秒都會更新一次。這可以修復嗎?另外,可以更快處理瀏覽器更新? – patrik 2014-10-23 07:37:39

+0

我最近沒有使用過這些工具 - 大部分時間我都在使用Linux和OS X--所以我不知道。但是,如果您的峯值內存分配發生在如此短的時間範圍內,即使使用非常小的刷新間隔,您甚至可能無法在監視器程序中看到它,如果它運行在相同的內核上,以確保它運行在不同的核心上。 – pederpansen 2014-10-23 08:04:34