private void Report(string benchDir, PerfCounter counter) { var csvPath = benchDir + RESULT_CSV_NAME; var tmpPath = benchDir + "result_tmp.csv"; using (var input = new StreamReader(csvPath)) { using (var output = new StreamWriter(tmpPath)) { output.Write(input.ReadToEnd()); var bldr = new StringBuilder(); bldr.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("AllBench")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("LocateBlock")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("LoadBlock")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("Action")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("Split")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("GetYomi")); bldr.Append(","); bldr.AppendFormat(" {0:0.00}", counter.GetTotalSeconds("Other")); bldr.Append(", "); // for comment field. output.WriteLine(bldr.ToString()); } } var fi = new FileInfo(csvPath); fi.Delete(); fi = new FileInfo(tmpPath); fi.MoveTo(csvPath); }