go defer性能测试

作者: ljh123 | 来源:发表于2018-09-17 15:59 被阅读15次

在学习中了解到defer相比没有使用defer会消耗部分时间,所以测试了下,使用与不使用defer的性能测试,通过实验,defer影响程序的速度基本可以忽略不计。

package main

import (
    "time"
    "fmt"
)

func main() {
    t1 := time.Now()
    for i := 0;i < 1000000;i++ {
        test1()
    }
    et1 := time.Since(t1)
    fmt.Println("Run time: ", et1)
    t2 := time.Now()

    for i := 0;i < 1000000;i++ {
        test2()
    }
    et2 := time.Since(t2)
    fmt.Println("Run time: ", et2)

    t3 := time.Now()
    for i := 0;i < 1000000;i++ {
        test3()
    }
    et3 := time.Since(t3)
    fmt.Println("Run time: ", et3)
}

func test1()  {
    func() {
        for i := 0;i <10;i++{

        }
    }()
}

func test2()  {
    defer func() {
        for i := 0;i <10;i++{

        }
    }()
}

func test3()  {
    for i := 0;i <10;i++{

    }
}


Run time:  11.0081ms
Run time:  70.0497ms
Run time:  11.0076ms

相关文章

  • go defer性能测试

    在学习中了解到defer相比没有使用defer会消耗部分时间,所以测试了下,使用与不使用defer的性能测试,通过...

  • golang基准测试Benchmark和Jmeter压测实践

    golang的性能测试Benchmark go test 自带有三种测试: 功能测试(单元测试) 基准测试 (性能...

  • golang defer 特性

    defer.go

  • Go 性能说明

    Go 性能说明 根据 Go 开发团队和基本的算法测试,Go 语言与 C 语言的性能差距大概在 10%~20% 之间...

  • Go Defer

    Go Defer 如果函数里面有多条defer指令,他们的执行顺序是反序,即后定义的defer先执行。 defer...

  • 15使用 Go 进行单元测试

    简介 单元测试 性能测试 性能分析 测试覆盖率 总结 当前部分的代码 简介 日常开发中, 测试是不能缺少的. Go...

  • go语言的单元测试

    Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testin...

  • Go教程第二十七篇:Defer

    Defer 本文是《Go系列教程》的第二十二篇文章。 什么是Defer? defer/dɪˈfɜː(r)/ 意为:...

  • goLang异常处理

    defer defer是go提供的一种资源处理的方式。defer的用法遵循3个原则在defer表达式被运算的同时,...

  • Go 语言基础——go语言如何优雅的进行测试

    我们可以为Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark),也称性能测试(examp...

网友评论

    本文标题:go defer性能测试

    本文链接:https://www.haomeiwen.com/subject/goxrnftx.html