首先:time.sleep单位为:1ns (纳秒)
转换单位:
1纳秒 =1000皮秒 1纳秒 =0.001 微秒 1纳秒 =0.000 001毫秒 1纳秒 =0.000 000 001秒
写无限循环代码的时候老是担心 time.sleep时间过短或者过长的影响 于是乎就测试了下
结果终于安心了,原来这是有瓶颈的。
贴代码:
package main
import(
"fmt"
"time"
)
func main(){
fmt.Println(int(time.Second))
forNum:=10000
test1(1000000,forNum)
test1(1000,forNum)
test1(1,forNum)
}
func test1(sleepTime time.Duration,num int){
i:=0
t := time.Now()
for{
i++
if i>=num{
fmt.Println("forNum:",num," sleep:",sleepTime," use:",time.Now().Sub(t).String())
break
}
time.Sleep(sleepTime)
}
}
运行结果:
1000000000 forNum: 10000 sleep: 1ms use: 13.6380121s forNum: 10000 sleep: 1µs use: 13.421951s forNum: 10000 sleep: 1ns use: 13.4345272s 成功: 进程退出代码 0.
sleep会让你逻辑的运算变慢 但是降低CPU消耗
如果不进行sleep CPU消耗会上去,但是运算速度超快,可以把sleep注释掉看看
基本 时间成本忽略不计。
所以sleep的使用 应该是策略性的。
本文固定链接: http://www.4yue.net/post-156.html