Matlab Builder NE

时间:2013-02-06 06:56:14

标签: wpf performance matlab .net-assembly

我将项目部署到.NET程序集文件中。 一个主函数文件(.m文件)被拖入部分。 三个帮助文件被拖入共享资源部分。

在“设置”下,将检查所有工具箱路径。在我的主要功能中,我只使用了神经工具箱中的norc。当我构建汇编文件时,它最终为12mb。

在我的主WPF项目中引用它之后,加载时间是无法忍受的,每次执行一些计算都需要大约10秒来计算。

当我在Matlab中运行该函数时,它只需不到2秒。

总之,我目前面临着两个问题:1。)大型.NET程序集文件和2.)严重的性能下降。

我正在使用Win7和Matlab 2012b。有人遇到过这样的问题并解决了吗?

1 个答案:

答案 0 :(得分:1)

是否选择工具箱可能会对最终大小产生巨大差异,尤其是在您拥有大量工具箱的情况下。依赖性检查器不能总是确切地确定代码调用哪些函数(它可能取决于运行时的许多事情),因此它包含代码可以调用的相当大的一组事物。取消选中您不知道的不必要的工具箱可以减少它所包含的内容,有时候会非常显着。

但是,它可能需要包含很多东西,而且可能很大。

当您的.NET代码调用从MATLAB部署的.NET程序集时,它需要启动MCR,这可能需要相当长的时间(几乎与MATLAB本身一样长),然后执行它需要的任何操作。如果你可以在调用之间以某种方式保持引用组件的变量,那么你只需要获得一次启动成本。