way toro the romance parade mikey integrantes helena gerard chemical black .net matlab dll matlab-deployment

.net - toro - Cómo hacer que el tiempo de inicio de MCR sea rápido



my chemical romance the black parade (1)

No hay mucho que puedas hacer aquí directamente. La arquitectura MCR tiene un alto costo inicial; no es ideal para programas de ejecución breve llamados repetidamente.

Puedes hacerlo más rápido de la siguiente manera:

  • Asegurándose de que el MCR esté instalado localmente en cada máquina que lo esté ejecutando
  • Pre-expansión del archivo CTF para su programa Matlab compilado
  • Implementando localmente su programa compilado en cada máquina que lo ejecuta
  • Comprar discos de estado sólido
  • Haga periódicamente una ejecución ficticia de su programa en segundo plano para asegurarse de que sus archivos permanezcan "calientes" en la memoria caché del disco.

Pero estos probablemente no te pondrán súper rápido; casi con seguridad no lo suficientemente rápido para tiempos de carga de página razonables.

Para obtenerlo realmente rápido, es posible que deba cambiar la arquitectura de su programa por una de cliente / servidor, donde inicia un proceso de servidor persistente que tiene su código MCR ejecutándose en él, y atiende las solicitudes de sus clientes PHP. Tendrá que hacer una codificación adicional para asegurarse de que las solicitudes se atiendan en un contexto "limpio".

También podría cargar la dll de MCR en su servidor web para que persista durante toda la vida útil del servidor. Esta sería una configuración más simple, pero podría estar limitado por la sesión de Matlab de una sola hebra, y tendría que tratar de obtener un punto de partida limpio para cada solicitud.

La solución de MathWorks para esto es el nuevo servidor de producción de Matlab , que puede cargar el código compilado de MCR en un grupo de trabajadores y atender las solicitudes de código M del cliente desde instancias de trabajadores de Matlab precargados en caliente. Aborda exactamente este problema con las aplicaciones MCR. El objetivo de este o un enfoque de cliente / servidor DIY es "hacer girar" su código MCR en las sesiones de Matlab antes de que las solicitudes del cliente sucedan, para que sus clientes nunca vean los altos costos de inicio de MCR.

EDITAR: hay una guía completa de MathWorks sobre la implementación de componentes de MCR en la web, la Guía de ejemplos web de implementación de aplicaciones de MATLAB , que no utiliza solo el servidor de producción de Matlab. Parece que en su mayoría dicen que es cliente / servidor, pero también puede cargar su componente MCR directamente en el servidor web para niveles de carga bajos.

Convertí mi programa matlab en un ensamblado .net, es decir, un archivo dll. Hice una aplicación de consola C # agregando el archivo dll y lo llamé desde php. El MCR se invoca cada vez que se llama al .exe. ¿Cómo puedo hacer que el MCR se inicie en la puesta en marcha del servidor y no se cierre cada vez, incluso si se llama al exe después de un cierto tiempo? Y si hay algún otro método para hacer que este proceso sea rápido, sugiérelo.