使用time.Since计算执行时间

想要获取计算某个任务从开始到结束的运行时间,我们可以使用time包中的Slice函数

  start := time.Now() // 获取当前时间
    sum := 0
    for i := 0; i < 100000000; i++ {
        sum++
    }
    elapsed := time.Since(start)

我们执行100000000次的加操作,time.Now 获取当前的时间, time.Since可以计算出一个事件戳到当前的时间差。
运行结果如下:

该函数执行完成耗时: 39.8933ms

使用time.Now().Sub()计算时间差
我们只需将time.Since()替换成 time.Now().Sub() 即可,如下:

    start := time.Now() // 获取当前时间
    sum := 0
    for i := 0; i < 100000000; i++ {
        sum++
    }
    elapsed := time.Now().Sub(start)
    fmt.Println(elapsed)

其实time.Since内部调用了Sub函数,我们进入time包看,注释的意思是,Since返回从t开始经过的时间, time.Since 是 time.Now().Sub(t) 的简写方式,

\src\time\time.go 923:6

// Since returns the time elapsed since t.
// It is shorthand for time.Now().Sub(t).
func Since(t Time) Duration {
    var now Time
    if t.wall&hasMonotonic != 0 {
        // Common case optimization: if t has monotonic time, then Sub will use only it.
        now = Time{hasMonotonic, runtimeNano() - startNano, nil}
    } else {
        now = Now()
    }
    return now.Sub(t)
}

当我们也可以使用 time.Now().Sub(start).Seconds()获取经过多少秒,Hours获取经过的小时数等,对应的也可以简写为time.Since(start).Seconds()time.Since(start).Seconds()等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 类型 time.Time{} 时间类型,包含了秒和纳秒以及Location time.Month() type M...
    吃猫的鱼0阅读 31,878评论 0 4
  • golang使用的版本: go version go1.10.3 一:功能介绍 time的一些功能,比如时区,像l...
    九卷技术录阅读 655评论 0 1
  • 当时候需要去计算一段代码或一个程序所消耗时间的时候,就需要进行统计时间,用程序去计算某一段代码的执行所需要的时间远...
    ljh123阅读 1,470评论 0 1
  • 背景 在生产环境中,为了能实时的监控程序的运行状态,少不了逻辑执行时间长度的统计。时间统计这个功能实现的期望有下面...
    Chole121阅读 2,008评论 0 12
  • 本章就来学习时间相关的所有操作 1.延迟d秒后返回通过信道返回时间值 func After(d Duration)...
    酷走天涯阅读 1,418评论 0 2

友情链接更多精彩内容