public StatisticsData GetData() { StatisticsData result = mData; result.Server = Server; result.Url = Url; result.Other = OtherStatus.GetData(); result._1xx = Status_1xx.GetData(); result._2xx = Status_2xx.GetData(); result._3xx = Status_3xx.GetData(); result._4xx = Status_4xx.GetData(); result._5xx = Status_5xx.GetData(); result.All = All.GetData(); for (int i = 0; i < Times.Count; i++) { result.Times[i] = Times[i].GetData(); } return(result); }
public StatisticsData GetData() { if (mStatisticsData == null || TimeWatch.GetTotalSeconds() - mStatisticsData.CreateTime >= 1) { if (System.Threading.Interlocked.CompareExchange(ref mGetStatus, 1, 0) == 0) { StatisticsData result = new StatisticsData(); result.CreateTime = TimeWatch.GetTotalSeconds(); result.Count = Count; result.Rps = Rps; result.Name = Name; result.Times.Add(Time10ms); result.Times.Add(Time20ms); result.Times.Add(Time50ms); result.Times.Add(Time100ms); result.Times.Add(Time200ms); result.Times.Add(Time500ms); result.Times.Add(Time1000ms); result.Times.Add(Time2000ms); result.Times.Add(Time5000ms); result.Times.Add(Time10000ms); result.Times.Add(TimeOtherms); double now = TimeWatch.GetTotalSeconds(); double time = now - mLastRpsTime; int value = (int)((double)(ms10 - ms10LastCount) / time); ms10LastCount = ms10; result.TimesRps.Add(value); value = (int)((double)(ms20 - ms20LastCount) / time); ms20LastCount = ms20; result.TimesRps.Add(value); value = (int)((double)(ms50 - ms50LastCount) / time); ms50LastCount = ms50; result.TimesRps.Add(value); value = (int)((double)(ms100 - ms100LastCount) / time); ms100LastCount = ms100; result.TimesRps.Add(value); value = (int)((double)(ms200 - ms200LastCount) / time); ms200LastCount = ms200; result.TimesRps.Add(value); value = (int)((double)(ms500 - ms500LastCount) / time); ms500LastCount = ms500; result.TimesRps.Add(value); value = (int)((double)(ms1000 - ms1000LastCount) / time); ms1000LastCount = ms1000; result.TimesRps.Add(value); value = (int)((double)(ms2000 - ms2000LastCount) / time); ms2000LastCount = ms2000; result.TimesRps.Add(value); value = (int)((double)(ms5000 - ms5000LastCount) / time); ms5000LastCount = ms5000; result.TimesRps.Add(value); value = (int)((double)(ms10000 - ms10000LastCount) / time); ms10000LastCount = ms10000; result.TimesRps.Add(value); value = (int)((double)(msOther - msOtherLastCount) / time); msOtherLastCount = msOther; result.TimesRps.Add(value); mLastRpsTime = now; mStatisticsData = result; mGetStatus = 0; } } return(mStatisticsData); }