此處耗時統計實際上採用的是stopwatch ,因為耗時統計對時間要求比較嚴苛,
本文所採用方法其實理論上只是用來方便統計、可能準確度上讓人不大放心。
本文只是做了個簡單的封裝、準確度上差別應該不是問題。
呼叫方法見**summary
///耗時統計
///建議採用關閉時寫入、實時寫入日誌等耗時操作將嚴重影響統計
///初始化:string tjguid = watchtimerhelper.watchtimerstart("計時器001")
///追加訊息:watchtimerhelper.watchtimermsgattach(tjguid, "預警專案");
///關閉:watchtimerhelper.watchtimerstop(tjguid);
///public class watchtimerhelper
/// /// 計時器名稱
///
public string m_watchname
public e_raisetype m_raisetype
public e_raisetime m_raisetime
}/// /// 統計器時間線
///
private class stopwatchtimeline
/// /// 當前時間點執行總時 - 毫秒
///
public long elapsedmilliseconds
/// /// 當前時間點執行總時 - 秒
///
public long elapsedticks
public string msg
}/// /// 統計器
///
private class stopwatchex : stopwatch
public listm_raistimeline_list
}/// /// 統計輸出型別
///
public enum e_raisetype
/// /// 統計時間輸出型別
///
public enum e_raisetime
#endregion
#region 公共屬性
#endregion
#region 公共方法
/// /// 開啟耗時統計
///
public static string watchtimerstart(string watchname,e_raisetime raisetime = e_raisetime.realtime, e_raisetype raisetype = e_raisetype.console)
;watch.m_raistimeline_list = new list();
_m_watchtimerdic.add(watch.m_stopwatchdesc.m_watchguid, watch);
//開始統計
watch.start();
//附加訊息
watchtimermsgattach(watch.m_stopwatchdesc.m_watchguid, "統計器開啟!");
return watch.m_stopwatchdesc.m_watchguid;
}/// /// 關閉耗時統計
///
public static void watchtimerstop(string watchguid)
_m_watchtimerdic[watchguid].stop();
//附加訊息 - 輸出
watchtimermsgattach(watchguid, "統計器結束!");
//去除統計器
_m_watchtimerdic[watchguid] = null;
_m_watchtimerdic.remove(watchguid);
}/// /// 統計器附加訊息
///
///
///
public static void watchtimermsgattach(string watchguid,string msg)
var watch = _m_watchtimerdic[watchguid];
stringbuilder sb = new stringbuilder();
//統計器描述
//標識及時間
//附加訊息
//時間統計 - 總時秒,總時毫秒,上次總時間
//繼續換行
//訊息佇列
string actualmsg = sb.tostring();
stopwatchtimeline line = new stopwatchtimeline()
;watch.m_raistimeline_list.add(line);
switch (watch.m_stopwatchdesc.m_raisetime)
break;
case e_raisetime.stoptime: //退出
break;}}
#endregion
#region 私有方法
#region 實時輸出
/// /// 實時輸出
///
///
///
private static void outputwatchmsg_realtime(stopwatchex watch, string msg)
break;}}
/// /// 實時輸出 - 控制台
///
///
private static void outputwatchmsg_realtime_console(string msg)
#endregion
#region 關閉時輸出
/// /// 關閉時輸出
///
///
///
private static void outputwatchmsg_stoptime(stopwatchex watch)
break;}}
/// /// 關閉時輸出 - 控制台
///
///
private static void outputwatchmsg_stoptime_console(stopwatchex watch)
foreach (var item in watch.m_raistimeline_list)
}#endregion
#endregion
}
執行耗時統計
c stopwatch watch new stopwatch 例項化乙個計時器 watch.start 開始計時 此處為要計算的執行 例如 int sum 0 for int i 0 i 100 i watch.stop 結束計時 獲取當前例項測量得出的總執行時間 以毫秒為單位 string ti...
Delphi 時間耗時統計
處理事情 資料處理過程中,速度很慢,無法準確定位分析是db問題還是客戶端處理問題,所以增加計時統計日誌 delphi計時首次使用,查閱資料,予以記錄 var bgpoint,edpoind int64 offset int64 begin bgpoint gettickcount 邏輯處理語句。ed...
stopwatch計時器統計程式耗時
1 引入依賴 import com.google.common.base.stopwatch 2 基礎用法 stopwatch stopwatch stopwatch.createstarted 建立計時器並開始計時 dosomething log.info dosomething 耗時 stopw...