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

  • 相关阅读:
    javascript数组查重方法总结
    html5的web存储
    掌握javascript中的最基础数据结构-----数组
    ES解决geoip的location不为geo_point格式
    elk默认分片只有1000导致索引没有创建
    Polysh批量管理服务器
    Git永久删除文件和历史记录
    windows下设置JupyterNotebook默认目录
    windwos安装RabbitMQ
    win7计划任务报该任务映像己损坏或己篡改
  • 原文地址:https://www.cnblogs.com/a-xu/p/6867347.html
Copyright © 2011-2022 走看看