Como o mono aot / mkbundle é usado e otimizado? (para reduzir as latências de inicialização da VM)
Pergunta
Eu gostaria de ver se posso reduzir as latências da VM usando o Mono's AOT (compilador de antecedência). Como alguém executa os arquivos .SO? (Desculpe, isso é uma pergunta é tão rudimentar; não consegui encontrar uma resposta simples na documentação de Mono).
Eu descobri como usar o mkbundle (mkbundle2 neste caso), mas os arquivos resultantes estão sendo otimizados? A documentação Mono AOT menciona sinalizadores "-O = All, -Shared", mas não os vejo para Mkbundle.
Embora seja provavelmente uma resposta muito diferente, se houver boas maneiras de manter a VM aberta (com algo mais natural / neutro da plataforma que um arquivo especial do FIFO), isso pode ser melhor.
Desde já, obrigado!
Solução
Se os arquivos AOT .So existirem ao lado dos arquivos EXE/DLL, o Mono os usará quando você executar o EXE. Mas você ainda precisa dos arquivos DLL/EXE para metadados e coisas que não podem ser compiladas ao AOT.
Outras dicas
Não tenho certeza se está exatamente relacionado à sua pergunta, mas veja a nota final aqui
Sobre a bandeira -residente para o compilador, para tornar o fsc.exe mais rápido no mono.