public static void PerfTest() { MakePerfTestFile(); var Arch = new x86.x86Architecture(); var Lang = new Languages.Zinnia.ZinniaLanguage(); var State = new CompilerState(null, Arch, Lang); State.SetOutput(new MemoryStream(), new MemoryStream()); State.Entry = "Main"; State.Format = ImageFormat.MSCoff; var Times = 10; var Files = new[] { PerfTestFile }; var Lines = ZinniaBuilder.ReadLines(Files, State.TabSize); var Assemblies = new List <AssemblyPath>() { new AssemblyPath("ZinniaCore", true), }; Console.WriteLine("Start"); var Average = Environment.TickCount; var Minimum = int.MaxValue; for (var i = 0; i < Times; i++) { var Ms = Environment.TickCount; State.CodeOut.Seek(0, SeekOrigin.Begin); State.LibOut.Seek(0, SeekOrigin.Begin); if (State.Compile(Lines, Assemblies)) { Console.WriteLine(i + ": " + State.Strings["CompilingSucceded"]); } else { Console.WriteLine(i + ": " + State.Strings["CompilingFailed"]); State.Messages.WriteToConsole(); break; } Ms = Environment.TickCount - Ms; if (Ms < Minimum) { Minimum = Ms; } } Average = Environment.TickCount - Average; Console.WriteLine("Minimum: {0}", Minimum); Console.WriteLine("Average: {0}", Average / Times); State.DisposeOutput(); }
public bool CreateAssembly(CodeFile[] CodeFiles) { var RetValue = true; State.SetOutput(AsmFile, ZinniaLib); State.AssemblyName = Path.GetFileNameWithoutExtension(OutFile); if (State.Compile(CodeFiles, Assemblies, IncBins)) { Console.WriteLine(State.Strings["CompilingSucceded"]); State.Messages.WriteToConsole(); } else { Console.WriteLine(State.Strings["CompilingFailed"]); State.Messages.WriteToConsole(); RetValue = false; } State.DisposeOutput(); return(RetValue); }