profile matlab,使用profile功能对Matlab性能调优
做PCANet的時候,Matlab抽風,加不了斷點,無奈之下只好把所有的function都寫到了一個m文件里。結果發現所有function寫在同一個m文件下時,程序運行速度快很多。
后來師兄告訴我,用Matlab的profile功能可以查看程序各個函數的運行時間,這樣就能找到原因所在。我嘗試了一下,profile真是炫酷得不行。使用pfofile的代碼如下:
profile on;
profile clear;
my_binary_net(1);%我的運行函數
profile viewer;
然后就會一個窗口出來,這個是我把所有function放在一個m文件時候的運行時間:
下面這幅圖是我程序的function分開在不同m文件時候的運行時間:
通過這兩個圖可以發現造成時間大幅增加是因為addpath函數。這是因為,當我運行的程序的function在不同m文件時,我調用的很多function都包含addpath語句,于是matlab足足調用了22613次addpath。而我運行程序的function在同一個m文件時,我把多余的addpath語句刪了,只在程序開頭添加了addpath。
既然已經真相大白了,我把其他m文件的多余addpath語句刪掉,再運行一次,結果如下:
這次就比上次用時少了500多秒。但還是比所有function寫在一個m文件要多出200多秒,可以看出調用m文件也是要耗費很多時間的,但把不同函數寫在不同m文件有助于代碼復用,是良好的編程規范,沒必要為了節省這點時間而把代碼全部寫在一個文件里。
最后再次發表一下感慨,profile真是個無比強大的功能!以后再也不用tic toc了!
總結
以上是生活随笔為你收集整理的profile matlab,使用profile功能对Matlab性能调优的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab平面抛射方程,MATLAB
- 下一篇: 压缩感知高斯测量矩阵matlab,浅谈压