У меня есть большой пакет моделирования, написанный на Matlab, но из-за беспокойства по поводу лучшего взаимодействия с другими внутренними проектами (, а также скорости выполнения)я думаю о переносе некоторых функций на.NET. и вызов таких объектов из Matlab. Какие накладные расходы связаны с вызовом объектов.NET из в Matlab?
Вот хорошее обсуждение объектно-ориентированного программирования Matlab , в котором не говорится о.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'