public static void Main(string[] args) { JitResult consoleTest = JitTest(() => Console.WriteLine("Testing console output...")); JitResult fileAccessTest = JitTest(() => FileTest()); Console.WriteLine("JIT Test"); Console.WriteLine("Results for console output:"); consoleTest.print(); Console.WriteLine("Results for file writing test:"); fileAccessTest.print(); }
public static JitResult ForceJitAssembly(params Assembly[] assemblies) { var result = new JitResult(); foreach (var assembly in assemblies.Distinct()) { var types = assembly.GetTypes(); foreach (var type in types) { const BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static; foreach (var item in type.GetConstructors(flags)) { if (!CanJit(item)) { continue; } if (ForceJitMethod(item)) { result.Ctors++; } else { result.Errors++; } } foreach (var item in type.GetMethods(flags)) { if (!CanJit(item)) { continue; } if (ForceJitMethod(item)) { result.Methods++; } else { result.Errors++; } } } result.Types += types.Length; result.Assemblies++; } return(result); }