/// <summary> /// 结束监控 /// </summary> /// <returns>监控数据</returns> public MonitorData EndMonitor() { float endTime = Time.realtimeSinceStartup; long endMemory = GC.GetTotalMemory(false); int endGC = GC.CollectionCount(0); MonitorData data = new MonitorData(); data.Name = _monitorName; data.Elapsed = endTime - _monitorBeginTime; data.MemoryIncrement = endMemory - _monitorBeginMemory; data.GCCount = endGC - _monitorBeginGC; return(data); }
/// <summary> /// 监控中执行方法 /// </summary> /// <param name="function">方法</param> /// <param name="name">监控名称</param> /// <returns>监控数据</returns> public MonitorData MonitorExecute(HTFAction function, string name = null) { float beginTime = Time.realtimeSinceStartup; long beginMemory = GC.GetTotalMemory(false); int beginGC = GC.CollectionCount(0); function(); float endTime = Time.realtimeSinceStartup; long endMemory = GC.GetTotalMemory(false); int endGC = GC.CollectionCount(0); MonitorData data = new MonitorData(); data.Name = string.IsNullOrEmpty(name) ? function.Method.Name : name; data.Elapsed = endTime - beginTime; data.MemoryIncrement = endMemory - beginMemory; data.GCCount = endGC - beginGC; return(data); }