gpt4 book ai didi

.net - 如何使 MCR 启动时间快

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:49 25 4
gpt4 key购买 nike

我将我的 matlab 程序转换为 .net 程序集,即 dll 文件。我制作了一个控制台 C# 应用程序,添加了 dll 文件并从 php 调用它。每次调用 .exe 时都会调用 MCR。如何使 MCR 在服务器启动时初始化,并且即使在一定时间后调用 exe 也不会每次都关闭?如果有任何其他方法可以加快此过程,请提出建议。

最佳答案

您不能直接在这里做很多事情。 MCR架构启动成本高;对于重复调用的短时间运行的程序来说不是很好。

您可以通过以下方式使其更快:

  • 确保 MCR 本地安装在每台运行它的机器上
  • 为编译的 Matlab 程序预扩展 CTF 文件
  • 将编译后的程序本地部署到每台运行它的机器上
  • 购买固态硬盘
  • 定期在后台模拟运行您的程序,以确保其文件在磁盘缓存中保持“热”状态。

但是这些可能不会让你超快;对于合理的页面加载时间来说,几乎肯定不够快。

要真正加快速度,您可能需要将您的程序架构更改为客户端/服务器架构,在该架构中启动一个持久的服务器进程,其中运行您的 MCR 代码,并为您的 PHP 客户端提供请求。您需要进行额外的编码以确保在“干净”的上下文中为请求提供服务。

您还可以将 MCR dll 加载到您的 Web 服务器中,以便它在整个服务器生命周期内持续存在。这将是一个更简单的设置,但您可能会受到单线程 Matlab session 的限制,并且必须处理为每个请求获取一个干净的起点。

MathWorks 对此的解决方案是新的 Matlab Production Server ,它可以将已编译的 MCR 代码加载到工作池中,并为来自预热的预加载 Matlab 工作实例的客户端 M 代码请求提供服务。它恰好解决了 MCR 应用程序的这个问题。这种或 DIY 客户端/服务器方法的要点是在客户端请求发生之前在 Matlab session 中“启动”您的 MCR 代码,因此您的客户端永远不会看到高 MCR 启动成本。

编辑:有关于将 MCR 组件部署到网络的完整 MathWorks 指南,MATLAB Application Deployment Web Example Guide ,它不仅仅使用 Matlab Production Server。看起来他们大多说要使用客户端/服务器,但您也可以直接在 Web 服务器中加载 MCR 组件以实现低负载水平。

关于.net - 如何使 MCR 启动时间快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16139033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com