Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }