matlab 类 方法,最好的组织MATLAB类的方法?
新的單文件樣式有一些優點。它允許并鼓勵您編寫很多小的方法,我認為這會導致更好的代碼。創建一個新文件,保存它,并將其添加到源代碼控制(我們都使用源代碼控制,對嗎?)的麻煩是很小的,但加起來幾十個小的方法就足夠了,它通常會阻止我從因子分解類更精細的功能。編輯整個課程便于瀏覽,搜索和替換,而不必打開十幾個單獨的編輯器選項卡,然后可以用于組織不同類的源代碼。
對于較大的代碼庫,單文件樣式可能具有性能優勢。在源代碼樹上迭代的源代碼控制和部署系統對于stat和diff操作都有一個每文件的成本。對于更大的代碼庫,比如數千種方法,尤其是在網絡驅動器上,這可能是重要的。我懷疑使用Matlab編譯器部署的應用程序也有一個性能效果。啟動時間隨著部署代碼庫的大小而增加。每個文件的一部分是文件操作的成本,因為文件(我認為)是單獨加密的。我懷疑,但沒有實驗測試,使用單個文件類定義將降低編譯Matlab應用程序的啟動成本。
但是,我使用舊的多文件組織來代替我的大部分代碼。部分原因是我們的代碼庫在新風格通常可用前幾年才啟動。但部分是為了表演。新的單一文件組織僅適用于新型MCOS Matlab類,并且由于更高的方法調度開銷,它們比舊式的Matlab類更慢。例如。這是一個顯示do-nothing nop()方法的執行時間的基準片段。
Calling each function/method 100000 times
nop() function: 0.02715 sec 0.27 usec per call
nop(obj) method: 0.24629 sec 2.46 usec per call
classdef nop(obj): 0.98572 sec 9.86 usec per call
classdef obj.nop(): 1.81307 sec 18.13 usec per call
另一個原因是,Matlab的自動壓縮將在類定義中縮小每個部分和每個方法,因此所有可執行代碼的基準是兩個制表位,浪費了8列屏幕空間。
總的來說,不是因為OO性能考慮,我可能會用單個文件,我正在編寫新的非性能關鍵類。
更新:它也看起來像一個有用的文檔生成器contentrpt()不適用于在classdef文件中定義的函數;只有那些在單獨的功能文件。
總結
以上是生活随笔為你收集整理的matlab 类 方法,最好的组织MATLAB类的方法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 操作权限,liunx下PHP操作
- 下一篇: php header x-auth-to