public void Finish(hwmPerformanceStatisticsItem item)
 {
     item._Stopwatch.Stop();
     hwmPerformanceStatisticsItem.History history = new hwmPerformanceStatisticsItem.History();
     history._Ticks = item._Stopwatch.ElapsedTicks;
     item._Historys.Add(history);
 }
    public void LogAndRecord()
    {
        List <string> historyStrs   = new List <string>();
        StringBuilder stringBuilder = new StringBuilder();

        stringBuilder.AppendLine("Performance Statistics:");
        foreach (KeyValuePair <string, hwmPerformanceStatisticsItem> item in m_Items)
        {
            string itemFilePath = m_RecordDirectory + item.Value._Name + ".txt";
            if (File.Exists(itemFilePath))
            {
                File.Delete(itemFilePath);
            }

            List <hwmPerformanceStatisticsItem.History> historys = item.Value._Historys;
            long[] ticks = new long[historys.Count];
            historyStrs.Clear();
            for (int iHistory = Mathf.Max(0, historys.Count - hwmPerformanceStatisticsItem.MAX_RECORD_HISTORY_COUNT); iHistory < historys.Count; iHistory++)
            {
                hwmPerformanceStatisticsItem.History iterHistory = historys[iHistory];
                ticks[iHistory] = iterHistory._Ticks;
                historyStrs.Add(hwmPerformanceStatisticsItem.SerializeHistory(iterHistory));
            }
            File.WriteAllLines(itemFilePath, historyStrs.ToArray());

            if (historys.Count > 0)
            {
                ValueAnalysis tickAnalysis = new ValueAnalysis(ticks);
                stringBuilder.AppendLine(string.Format("Name: {0} Count:{1} AvgTick:{2:F2}"
                                                       , item.Value._Name
                                                       , historys.Count
                                                       , tickAnalysis.Avg));
            }
        }
        historyStrs.Clear();
        historyStrs = null;

        UnityEngine.Debug.Log(stringBuilder.ToString());
    }