Matlab可执行文件太慢了

use*_*647 23 php c matlab exe matlab-deployment

deploytool使用.mMatlab 将我的程序转换为基于控制台的应用程序.Matlab .exe文件执行大约需要2秒钟,但在我将其转换为可执行文件并调用后.exe,执行时间过长需要45秒.

我想将Matlab程序与PHP集成.有没有其他有效和快速的方法来做到这一点?在我的项目中,时间确实是一个重要因素(不是开发时间,而是应用程序的执行时间).那么有什么方法可以花更少的时间吗?

我在互联网上看到,我们可以编写PHP扩展来调用Matlab.此方法是快速还是与调用deploytool文件相同?Matlab编码器是否对此过程有任何帮助?如果有其他选择,请提及.

Ole*_*leg 16

MATLAB编译的.exe会在第一次运行时遇到开销,因为它启动了MCR:为什么我的应用程序使用MATLAB编译器4.1编译需要很长时间才能启动?

除非您注销或重新启动操作系统,否则MCR将保持预加载状态.另一个有用的读物​​:加速编译的应用程序启动.

" 为什么使用MATLAB编译器创建的独立程序需要更长时间才能启动? "还报告连续运行应该更快,但如果稍后重新运行,则必须在内存中重新加载进程.

您可以将代码包含在内tic toc,部署它并检查执行所花费的时间,以及启动开销.

加速的另一种方法.exe是用PHP调用MATLAB.如果你打开MATLAB会话就会遇到一次开销.您可以在启动时启动MATLAB,从而避免在使用PHP调用期间特别受到开销的影响.

有关更多信息,请阅读从PHP调用MATLAB,并记住exit除非特别需要,否则不要使用.

  • 除非您注销或重新启动操作系统,否则MCR将保持预加载状态.另一个有用的读物​​:[加速编译的应用程序启动](http://undocumentedmatlab.com/blog/speeding-up-compiled-apps-startup/) (5认同)

Sam*_*rts 7

调用使用MATLAB Compiler创建的可执行文件相对于在实时MATLAB中调用程序会产生开销,因为它需要启动MCR.这将在您第一次启动时更长,但即使在第一次之后仍然会有开销.

如果您不仅可以访问MATLAB编译器,而且可以访问Builder产品之一(Builder for .NET或 - 由于您使用的是PHP - Builder for Java,这可能更好),有一种方法可以解决这个问题.

使用Builder产品,您可以创建独立组件(.NET程序集或Java .jar).然后,您可以创建一个.NET或Java应用程序来运行,实例化您的MATLAB构建组件 - 启动MCR - 然后坐在那里等待来自PHP的调用.然后,每次调用都不会受到MCR启动开销的影响,并且从PHP到.NET/Java的调用应该只有更小的开销.