когда загружать pre-jit-компиляцию в .net-приложении Windows? - PullRequest
0 голосов
/ 10 мая 2018

После этого ответа Предварительная загрузка всех сборок (JIT)

хороший способ предварительно загрузить все сборки приложения. может быть

Private Sub PreLoadJit()
  For Each type In Assembly.GetExecutingAssembly.GetTypes
    For Each method In type.GetMethods((BindingFlags.DeclaredOnly  _
                Or (BindingFlags.NonPublic  _
                Or (BindingFlags.Public  _
                Or (BindingFlags.Instance Or BindingFlags.Static)))))
      If (((method.Attributes And MethodAttributes.Abstract)  _
                = MethodAttributes.Abstract)  _
                OrElse method.ContainsGenericParameters) Then
        continue For
      End If
      System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(method.MethodHandle)
    Next
  Next
End Sub

а когда запустить метод? Я думаю, что может быть первым методом в методе MyBase.Load, но я не знаю, прав ли я.

И после этой старой статьи

https://www.codeproject.com/Articles/31316/Pre-compile-pre-JIT-your-assembly-on-the-fly-or-tr

Автор использует поток для запуска метода. Как насчет сборки pre-jit при запуске как метода, вызываемого в mainthread, или запуска его в отдельном потоке?

...