go map 的性能问题

Map 是 go 语言里最常用的数据结构之一,想必都很关注它的性能。下面是一些关于go map 的性能问题的经验,仅供参考

go map 的性能问题

参考

《Go语言中的map的性能分析》 http://monnand.me/p/golang-map-bench/zhCN

在map中有1000个元素的时候,go的性能是比python强的。而当增加到10000个的时候,go就与python持平。当继续增加元素个数的时候,python的优势则非常明显了。

《各语言中哈希表实现的性能分析》 http://monnand.me/p/hashtable-bench/zhCN/

关于Go中map是否是性能杀手的问题:如果你能忍受C++的unordered_map,python中的dict以及元素数在100000以内的Java中的HashMap,那么Go中的map就应该还能接受。

《Go 语言中的 Array,Slice,Map 和 Set》 http://se77en.cc/2014/06/30/array-slice-map-and-set-in-golang/

数组是 slice 和 map 的底层结构。 slice 是 Go 里面惯用的集合数据的方法,map 则是用来存储键值对。 内建函数 make 用来创建 slice 和 map,并且为它们指定长度和容量等等。slice 和 map 字面值也可以做同样的事。 slice 有容量的约束,不过可以通过内建函数 append 来增加元素。 map 没有容量一说,所以也没有任何增长限制。 内建函数 len 可以用来获得 slice 和 map 的长度。 内建函数 cap 只能作用在 slice 上。 可以通过组合方式来创建多维数组和 slice。map 的值可以是 slice 或者另一个 map。slice 不能作为 map 的键。 在函数之间传递 slice 和 map 是相当廉价的,因为他们不会传递底层数组的拷贝。

注意

  • map key 并不能真正删除
  • map key 无序且随机变化

本文网址: https://pylist.com/topic/95.html 转摘请注明来源

Suggested Topics

Leave a Comment