use*_*647 23 php c matlab exe matlab-deployment
我deploytool
使用.m
Matlab 将我的程序转换为基于控制台的应用程序.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
除非特别需要,否则不要使用.
调用使用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的调用应该只有更小的开销.