首页 > 后端开发 > Golang > 在 Go 中使用 `{}` 和 `make()` 初始化映射有性能差异吗?

在 Go 中使用 `{}` 和 `make()` 初始化映射有性能差异吗?

DDD
发布: 2024-10-30 05:54:02
原创
648 人浏览过

  Is There a Performance Difference Between Using `{}` and `make()` to Initialize Maps in Go?

Go 中的映射初始化:make 与 {}

Go 中,初始化映射有两种常用方法:使用 {} 或制作()。虽然它们都会生成空映射,但存在一个问题,即这两种方法之间是否存在任何性能差异。

为了研究这一点,让我们创建一个基准测试来比较这两种初始化技术:

<code class="go">package main

import "testing"

var result map[string]int

func BenchmarkMakeLiteral(b *testing.B) {
    var m map[string]int
    for n := 0; n < b.N; n++ {
        m = map[string]int{}
    }
    result = m
}

func BenchmarkMakeMake(b *testing.B) {
    var m map[string]int
    for n := 0; n < b.N; n++ {
        m = make(map[string]int)
    }
    result = m
}

func main() {
    testing.Benchmark(BenchmarkMakeLiteral)
    testing.Benchmark(BenchmarkMakeMake)
}</code>
登录后复制

在不同机器上运行基准测试结果一致,表明两种初始化方法没有显着的性能差异。 {} 和 make() 的执行时间几乎相同。

总之,虽然 {} 和 make() 方法都生成空映射,但使用其中一种方法并没有明显的性能优势。两者之间的选择可以根据个人喜好或具体要求。

以上是在 Go 中使用 `{}` 和 `make()` 初始化映射有性能差异吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板