Golang記錄、計算函數(shù)執(zhí)行耗時、運(yùn)行時間的一個簡單方法
更新時間:2015年07月04日 10:33:12 投稿:junjie
這篇文章主要介紹了Golang記錄、計算函數(shù)執(zhí)行耗時、運(yùn)行時間的一個簡單方法,本文直接給出代碼實例,需要的朋友可以參考下
先寫一個公共函數(shù), 比如在 common 包下有這么一個方法:
// 寫超時警告日志 通用方法
func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) {
dis := time.Now().Sub(start).Seconds()
if dis > timeLimit {
log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:", detailed, "TimeoutWarning using", dis, "s")
//pubstr := fmt.Sprintf("%s count %v, using %f seconds", tag, count, dis)
//stats.Publish(tag, pubstr)
}
}
這個函數(shù)的幾個參數(shù)說明如下:
tag、detailed 表示超時發(fā)生位置的兩個字符串參數(shù)。
start 程序開始執(zhí)行的時間
timeLimit 函數(shù)執(zhí)行超時閥值,單位是秒。
使用時,在每個函數(shù)的第一行有下面一段代碼就行了:
//
func Save函數(shù)名(…) (…) {
// 如果這個方法執(zhí)行超時3秒,則會記錄日志
defer common.TimeoutWarning("SaveAppLogMain", "Total", time.Now(), float64(3))
// … 函數(shù)自身的邏輯。
}
相關(guān)文章
go語言通過反射獲取和設(shè)置結(jié)構(gòu)體字段值的方法
這篇文章主要介紹了go語言通過反射獲取和設(shè)置結(jié)構(gòu)體字段值的方法,實例分析了Go語言反射的使用技巧,需要的朋友可以參考下2015-03-03
GoLang中的互斥鎖Mutex和讀寫鎖RWMutex使用教程
RWMutex是一個讀/寫互斥鎖,在某一時刻只能由任意數(shù)量的reader持有或者一個writer持有。也就是說,要么放行任意數(shù)量的reader,多個reader可以并行讀;要么放行一個writer,多個writer需要串行寫2023-01-01
Go在GoLand中引用github.com中的第三方包具體步驟
這篇文章主要給大家介紹了關(guān)于Go在GoLand中引用github.com中第三方包的具體步驟,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Go具有一定的參考價值,需要的朋友可以參考下2024-01-01
Go實現(xiàn)整合Logrus實現(xiàn)日志打印
這篇文章主要介紹了Go實現(xiàn)整合Logrus實現(xiàn)日志打印,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07
Golang動態(tài)數(shù)組的實現(xiàn)示例
動態(tài)數(shù)組能自動調(diào)整大小,與靜態(tài)數(shù)組不同,其大小不固定,可根據(jù)需求變化,實現(xiàn)通常依賴于數(shù)據(jù)結(jié)構(gòu)如鏈表或數(shù)組加額外信息,本文就來介紹一下Golang動態(tài)數(shù)組的實現(xiàn)示例,感興趣的可以了解一下2024-10-10

