zoukankan      html  css  js  c++  java
  • golang中 return如果返回指针比大型struct性能高


    type tt struct{

    aa int
    bb int
    cc int
    str string

    }


    func func_rstruct () tt{

    t:=tt{1,2,3,"88888888888"}

    return t


    }


    func func_rpstruct () *tt{

    t:=tt{1,2,3,"88888888888"}

    return &t


    }

    func Benchmark_rstruct(t *testing.B) {

    strs:=[CNT]string{}
    for i:=0;i<CNT;i++ {
    dat:= func_rstruct()
    strs[i]=dat.str
    }
    t.Log("success"+strconv.Itoa(len(strs)))
    }

    func Benchmark_rpstruct(t *testing.B) {



    strs:=[CNT]string{}
    for i:=0;i<CNT;i++ {
    dat:= func_rpstruct()
    strs[i]=(*dat).str

    }
    t.Log("success"+strconv.Itoa(len(strs)))

    }


    result:

    C:Usersxinhuaworkspace estprojsrcmain>go test -test.bench=".*"
    Benchmark_rstruct-4 1000000000 0.29 ns/op
    --- BENCH: Benchmark_rstruct-4
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    tmain_test.go:37: success1000000
    ... [output truncated]
    Benchmark_rpstruct-4 1000000000 0.26 ns/op
    --- BENCH: Benchmark_rpstruct-4
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    tmain_test.go:50: success1000000
    ... [output truncated]
    PASS
    ok _/C_/Users/xinhua/workspace/testproj/src/main 7.997s

  • 相关阅读:
    rabbitMq(2)之“Work”模式
    rabbitmq(1)之"Hello World"模式
    Maven的实用基础命令
    RabbitMq(3)之“发布/订阅”模式
    mac rabbitmq安装以及入门
    Mac 安装Homebrew
    多线程通讯之管道
    CentOS中防火墙之iptables
    CentOS中防火墙之Firewall
    Redis的简介
  • 原文地址:https://www.cnblogs.com/a-xu/p/6867347.html
Copyright © 2011-2022 走看看