Go計(jì)算某段代碼運(yùn)行所耗時(shí)間簡(jiǎn)單實(shí)例
可以使用time
包中的Now()
函數(shù)和Sub()
函數(shù),記錄代碼的開(kāi)始和結(jié)束時(shí)間,計(jì)算時(shí)間差來(lái)得到代碼運(yùn)行耗時(shí)。
package main import ( "fmt" "time" ) func main() { start := time.Now() for i := 0; i < 10000; i++ { fmt.Println(i) } end := time.Now() fmt.Printf("running time is: %vs\n", end.Sub(start).Seconds()) }
運(yùn)行結(jié)果如下圖所示:
Sub()
方法返回的是Duration
類(lèi)型的值,表示兩個(gè)時(shí)間之間的時(shí)間差。默認(rèn)情況單位為納秒。如需要以秒為單位的結(jié)果,可以用Seconds()
方法將其轉(zhuǎn)換為浮點(diǎn)數(shù)。
附:計(jì)算函數(shù)的運(yùn)行時(shí)間
func compute() { start := time.Now() defer func() { cost := time.Since(start) fmt.Println("cost=", cost) }() // some computation }
利用defer的作用,可以在函數(shù)開(kāi)始的時(shí)候獲取一個(gè)時(shí)間,使用time.Now()在函數(shù)結(jié)束的時(shí)候,獲取程序從標(biāo)記開(kāi)始的時(shí)間段,可以得到函數(shù)運(yùn)行的時(shí)間。
總結(jié)
到此這篇關(guān)于Go計(jì)算某段代碼運(yùn)行所耗時(shí)間的文章就介紹到這了,更多相關(guān)Go計(jì)算代碼運(yùn)行時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go高級(jí)特性探究之處理1分鐘百萬(wàn)請(qǐng)求詳解
對(duì)于大型的互聯(lián)網(wǎng)應(yīng)用程序,如電商平臺(tái)、社交網(wǎng)絡(luò)、金融交易平臺(tái)等,每秒鐘都會(huì)收到大量的請(qǐng)求,那么Go是如何處理這些百萬(wàn)請(qǐng)求的呢,下面就來(lái)和大家詳細(xì)講講2023-06-06golang interface判斷為空nil的實(shí)現(xiàn)代碼
這篇文章主要介紹了golang interface判斷為空nil的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04GoLang并發(fā)機(jī)制探究goroutine原理詳細(xì)講解
goroutine是Go語(yǔ)言提供的語(yǔ)言級(jí)別的輕量級(jí)線(xiàn)程,在我們需要使用并發(fā)時(shí),我們只需要通過(guò) go 關(guān)鍵字來(lái)開(kāi)啟 goroutine 即可。這篇文章主要介紹了GoLang并發(fā)機(jī)制goroutine原理,感興趣的可以了解一下2022-12-12Golang定時(shí)器Timer與Ticker的使用詳解
在 Go 里有很多種定時(shí)器的使用方法,像常規(guī)的 Timer、Ticker 對(duì)象,本文主要為大家介紹了Timer與Ticker的使用,感興趣的小伙伴可以了解一下2023-05-05Go語(yǔ)言JSON編解碼神器之marshal的運(yùn)用
這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言中JSON編解碼神器——marshal的運(yùn)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09Go語(yǔ)言reflect包的反射機(jī)制基本用法示例
反射在處理接口和類(lèi)型斷言、開(kāi)發(fā)通用功能或者設(shè)計(jì)框架時(shí)尤為重要,本文將深入探索 Go 語(yǔ)言中的反射機(jī)制,通過(guò)具體的示例展示如何使用?reflect?包,讓你能夠在 Go 項(xiàng)目中有效地利用這一強(qiáng)大的工具2023-11-11Golang 探索對(duì)Goroutine的控制方法(詳解)
下面小編就為大家分享一篇Golang 探索對(duì)Goroutine的控制方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Go Excelize API源碼解讀GetSheetViewOptions與SetPageLayo
這篇文章主要為大家介紹了Go Excelize API源碼解讀GetSheetViewOptions與SetPageLayout方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08golang中range在slice和map遍歷中的注意事項(xiàng)
今天小編就為大家分享一篇關(guān)于golang中range在slice和map遍歷中的注意事項(xiàng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04