¿Cómo se Mono AOT / mkbundle utilizan y optimizan? (Para reducir las latencias de inicio VM)
Pregunta
Me gustaría ver si puedo reducir las latencias de máquinas virtuales mediante el uso de AOT de Mono (por delante de compilador de tiempo). ¿Cómo se puede ejecutar los archivos .so? (Lo siento esto es pregunta es tan rudimentaria; no pude encontrar una respuesta sencilla en la documentación del mono).
Me di cuenta de cómo utilizar mkbundle (mkbundle2 en este caso), pero son los archivos resultantes siendo optimizado? La documentación Mono AOT menciona "-O = todo, -shared" banderas, pero no veo estos para mkbundle.
A pesar de que es probablemente una respuesta diferente tanto, si hay buenas maneras de mantener la máquina virtual abierta (con algo de plataforma / neutro más natural que un archivo especial FIFO), que podría ser mejor.
Gracias de antemano!
Solución
Si existen archivos de la AOT .so al lado del exe / dll archivos, Mono van a usar cuando se ejecuta el exe. Pero aún necesita los archivos dll / exe para los metadatos y las cosas que no pueden ser compilados AOT.
Otros consejos
No estoy seguro si es exactamente relacionada con su pregunta, pero véase la nota final aquí
sobre la bandera --resident para el compilador, para hacer más rápido fsc.exe en Mono.