来自Matlab的.NET性能

Nat*_*lan 7 .net performance matlab

我有一个用Matlab编写的大型仿真套件,但是由于担心与其他内部项目的更好接口(以及执行速度),我正在考虑将一些功能转移到.NET并从Matlab中调用这些对象.什么是与调用.NET对象相关的开销 Matlab的?

这里是关于Matlab OO的一个很好的讨论,它没有谈论.NET

编辑:简要研究

我在Matlab中自行运行了一个快速测试,在不同对象中进行简单访问和赋值操作,包括正式的Matlab对象(R2011b),Java和.NET每次调用1,000,000次.方法调用是指内部循环,属性/字段调用是指从Matlab访问公共字段并在Matlab中循环.最后的结果让我感到困惑,因为.NET的开销远高于Java,但实际运行时间约为一半.到底是怎么回事?

    Access(s)  Assign(s)  Type of object/call
    --- MATLAB ---
    0.003361   0.004268   'myObj.field'
    0.003403   0.004263   'myStruct.field'
    0.003376   0.003392   'myVar'   
    0.152629   0.303579   'myHandleObj.field'
    25.79159   -          'TestConstant.const'
    0.003384   -          'myTestConstant.const' (instance)
    0.006794   0.008689   'TestObj.methods'
    0.157509   0.303357   'TestHandleObj.methods'

    --- NON-MATLAB ---
    10.70006   16.42527   'JavaObj fields'
    0.005063   0.005441   'JavaObj methods'
    43.49988   43.96159   'NetObj fields'
    0.002194   0.002306   'NetObj methods'

小智 0

正在运行的应用程序会消耗资源来使用 GD I/G I+ 工具重新计算和重新绘制数据。两项操作并不相互关联。重新计算是指排序、过滤、分组等除重画之外的所有操作。