private static string snp(StageRunsTimes sT, int netT) { if (netT != -1 && sT.slicerT != -1 && curTimes.boogieT > 0) { return(((100 * (netT)) / curTimes.boogieT).ToString()); } else { return("X"); } }
private static string sn(StageRunsTimes sT, int netT) { if (netT != -1) { return(netT.ToString()); } else { return("X"); } }
private static string sb(StageRunsTimes sT, int netT) { if (netT != -1 && sT.slicerT != -1) { return((netT + sT.slicerT).ToString()); } else { return("X"); } }
private static void printStatsIf(StageRunsTimes sT, string v) { Console.WriteLine("Stage:{0} - {1}", v, procName); Console.WriteLine("Out {0,-4} {1,-4} {2,-4} {3,-4} {4,-4}", "net", "orig", "fw", "fwO", "mrs"); Console.WriteLine("NetT {0,4} {1,4} {2,4} {3,4} {4,4}", sn(sT, sT.netT), sn(sT, sT.origT), sn(sT, sT.fwT), sn(sT, sT.fwOrigT), sn(sT, sT.mrsT)); Console.WriteLine("TotT {0,4} {1,4} {2,4} {3,4} {4,4}", sb(sT, sT.netT), sb(sT, sT.origT), sb(sT, sT.fwT), sb(sT, sT.fwOrigT), sb(sT, sT.mrsT)); Console.WriteLine("delT {0,4} {1,4} {2,4} {3,4} {4,4}", sp(sT, sT.netT), sp(sT, sT.origT), sp(sT, sT.fwT), sp(sT, sT.fwOrigT), sp(sT, sT.mrsT)); Console.WriteLine("delN {0,4} {1,4} {2,4} {3,4} {4,4}", snp(sT, sT.netT), snp(sT, sT.origT), snp(sT, sT.fwT), snp(sT, sT.fwOrigT), snp(sT, sT.mrsT)); if (v == @"build") { sss.Add(String.Format(" & {0,-50} & {1,3} & {2,3} & {3,3} & {4,3}\\%\\\\", procName, curTimes.boogieT, sT.slicerT, sT.netT, sp(sT, sT.netT))); } }
private static void parseZ3Runs() { // Console.WriteLine(" Parsing Z3 run"); try { var mm = parseTo(@"Running Z3 on(.*)\.smt2", @"Run ended"); if (mm == null) { throw new EndException(); } var m1 = parseTo(@"unsat", new [] { @"Run ended", @"unknown", @"Process.*timed out" }); // var unknown = false; var z3fn = mm.Groups[1].ToString(); StageRunsTimes stage = null; var orig = false; if (z3fn.EndsWith(@".orig")) { z3fn = z3fn.Substring(0, z3fn.Length - 5); orig = true; } var fw = false; if (z3fn.EndsWith(@".fw")) { z3fn = z3fn.Substring(0, z3fn.Length - 3); fw = true; } var mrs = false; if (z3fn.EndsWith(@".mrs")) { z3fn = z3fn.Substring(0, z3fn.Length - 4); mrs = true; } var slicerTime = -1; var s = ""; if (z3fn.EndsWith(@".start")) { s = "start"; slicerTime = curTimes.slicerTimes.preT.slicerT; stage = curTimes.slicerTimes.startT; } else if (z3fn.EndsWith(@".start.1")) { s = "pre"; slicerTime = curTimes.slicerTimes.preT.slicerT; stage = curTimes.slicerTimes.preT; } else if (z3fn.EndsWith(@".build")) { slicerTime = curTimes.slicerTimes.buildT.slicerT; s = "build"; stage = curTimes.slicerTimes.buildT; } else if (z3fn.EndsWith(@".round_1_MR")) { slicerTime = curTimes.slicerTimes.mapsT.slicerT; s = "maps"; stage = curTimes.slicerTimes.mapsT; } else if (z3fn.EndsWith(@".end")) { s = "end"; slicerTime = curTimes.slicerTimes.endT.slicerT; stage = curTimes.slicerTimes.endT; } else if (z3fn.EndsWith(@".boogie")) { s = "Boogie"; } else { s = z3fn; } if (mrs) { s += ".mrs"; } if (fw) { s += ".fw"; } if (orig) { s += ".orig"; } if (m1 == null) { if (endMatch != null && endMatch.Groups[1].ToString() == @"unknown") { Console.WriteLine(" Z3 unkown {0,-60}:", s); goto z3end; } } var m2 = parseTo(@".*\:total\-time\s+(\d+)\.(\d+)", @"Run ended"); if (m2 == null) { throw new EndException(); } var z3t = Int32.Parse(m2.Groups[1].ToString()); // Debug.Assert(stage != null); if (stage != null) { if (fw && orig) { stage.fwOrigT = z3t; } else if (mrs) { stage.mrsT = z3t; } else if (fw) { stage.fwT = z3t; } else if (orig) { stage.origT = z3t; } else { stage.netT = z3t; } } // Console.WriteLine(" Z3: {0}", s); Console.WriteLine(" Z3 time {0,-60}:{1,3}s", s, z3t); } catch (EndException e) { Console.WriteLine(" Error in parsing Z3", e); } z3end: parseTo(@"Running Z3 done"); }