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文件中定义的函数;只有那些在单独的功能文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值