加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 如何快速启动MCR启动时间

发布时间:2020-12-14 04:37:51 所属栏目:Windows 来源:网络整理
导读:我将我的matlab程序转换为.net程序集,即dll文件.我已经制作了一个控制台C#应用程序添加dll文件并从php调用它.每次调用.exe时都会调用MCR.如何在服务器启动时初始化MCR而不是每次都关闭,即使在一段时间后调用了exe ??如果有任何其他方法可以使这个过程快速,请
我将我的matlab程序转换为.net程序集,即dll文件.我已经制作了一个控制台C#应用程序添加dll文件并从php调用它.每次调用.exe时都会调用MCR.如何在服务器启动时初始化MCR而不是每次都关闭,即使在一段时间后调用了exe ??如果有任何其他方法可以使这个过程快速,请建议.

解决方法

你可以直接在这里做很多事情. MCR架构具有较高的启动成本;对于反复调用的短跑程序来说,这并不好.

你可以通过以下方式加快速度:

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

但这些可能不会让你超级快;几乎肯定不够快,无法合理的页面加载时间.

要真正快速地实现它,您可能需要将程序体系结构更改为客户端/服务器,您可以在其中启动在其中运行MCR代码的持久服务器进程,并向PHP客户端提供请求.您需要执行其他编码以确保在“干净”的上下文中处理请求.

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读