0

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

在设置下,检查所有工具箱路径。在我的主要功能中,我只使用norc了 Neural Toolbox。当我构建程序集文件时,它最终为 12mb。

在我的主 WPF 项目中引用它后,加载时间令人难以忍受,每次执行一些计算大约需要 10s 来计算。

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

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

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

4

1 回答 1

1

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

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

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

于 2013-02-06T13:28:35.383 回答