我只是在測(cè)量一組 goroutine 的執(zhí)行時(shí)間。這意味著:我開始測(cè)量,然后啟動(dòng) 20 個(gè) goroutines 并在它們完成后立即停止測(cè)量。我重復(fù)該過程 4 次,然后比較 4 次執(zhí)行時(shí)間。有時(shí),這些執(zhí)行時(shí)間會(huì)有很大差異:20 個(gè)協(xié)程的第一次運(yùn)行:1.2 毫秒20 個(gè)協(xié)程的第二次運(yùn)行:1.9 毫秒20 個(gè)協(xié)程的第三次運(yùn)行:1.4 毫秒20 個(gè)協(xié)程的第四次運(yùn)行:17.0 毫秒!為什么有時(shí)差異如此顯著?有什么辦法可以避免嗎?
1 回答

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
為什么有時(shí)差異如此顯著?
執(zhí)行時(shí)間在某些時(shí)候總是不可預(yù)測(cè)的,如提到的(CPU、磁盤負(fù)載、內(nèi)存等)
有什么辦法可以避免嗎?
有一種方法可以使您的測(cè)量更有用。Go 有一個(gè)內(nèi)置的基準(zhǔn)測(cè)試工具。該工具運(yùn)行您的代碼的次數(shù)剛好足以確定某種確定性的執(zhí)行時(shí)間。
除了顯示代碼的平均執(zhí)行時(shí)間外,它還可以顯示有用的內(nèi)存信息。
- 1 回答
- 0 關(guān)注
- 143 瀏覽
添加回答
舉報(bào)
0/150
提交
取消