加入收藏 | 设为首页 | 会员中心 | 我要投稿 宜春站长网 (https://www.0795zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

担忧并不像你想的那样普遍

发布时间:2021-02-20 18:24:42 所属栏目:传媒 来源:互联网
导读:关于 hmap 的结构这里已经将很多重要的字段列出来了,其中最重要的就是 buckets 这一部分,根据上面我们说过的链地址法可知,对同一类 key (哈希结果相同)放入相同的桶中。此时每一个桶还有另外一个字段 overflow,也就是当前桶装不下就会再创建新的桶。这就

关于 hmap 的结构这里已经将很多重要的字段列出来了,其中最重要的就是 buckets 这一部分,根据上面我们说过的链地址法可知,对同一类 key (哈希结果相同)放入相同的桶中。此时每一个桶还有另外一个字段 overflow,也就是当前桶装不下就会再创建新的桶。这就是 Go 中 map 的主要实现方法,更详细的部分我们接下来一点一点聊。

2.2 源码

map 的源码位于 src/runtime/map.go 文件中。关于 map 的操作的具体实现在这里都可以找到:

  • 创建 map:func makemap(t *maptype, hint int, h *hmap) *hmap
  • 访问某个 key:
  • 返回结果只包括 value:func mapaccess1(t *maptype, h *hmap, key unsafe.Pointer) unsafe.Pointer
  • 返回结果包括 bool 结果:func mapaccess2(t *maptype, h *hmap, key unsafe.Pointer) (unsafe.Pointer, bool)
  • 存入 key:func mapassign(t *maptype, h *hmap, key unsafe.Pointer) unsafe.Pointer
  • 删除 key:func mapdelete(t *maptype, h *hmap, key unsafe.Pointer)

本篇文章不会带大家将源码通读一遍,但是会将其实现过程以图或者文字形式分析出来,但是建议大家有时间可以根据本篇文章的内容再去自己读一遍源码,如果我这里将所有源码都解释一遍,估计朋友们很快就又忘记了,还不如记住实现流程。所以本文更多的是讲 map 每个操作的过程图,以及其中的部分要点,而不是将源码一行一行的解释出来。

3. 图解 map

3.1 创建map

我们已经知道 map 的数据结构,其实 map 的初始化也无非就是填充各个字段而已:

  • 第一个就是 hash0 字段,此处会随机给一个种子,用在哈希函数计算时使用。关于哈希函数在运行时,Go 会检测 cpu 是否支持 aes,支持则使用 aes hash,否则使用 memhash。位于路径:src/runtime/alg.go 下的 alginit() 函数。
  • 根据参数 hint计算需要的桶数。
  • 根据桶的数量创建一个连续的空间来存储桶的数据。

大体上就是这么一个过程,关于源码中的一些检查项这里就不多废话了,并且源码注释也写的很清楚了。

下面这个图就是一个 map 的主要相关存储结构:


 

边缘计算的兴起在很大程度上归功于每秒连接到互联网的物联网(IoT)设备的增加。传统上,物联网设备产生的数据被传输回中央网络服务器,通常位于数据中心。一旦数据被处理,进一步的指令就会被发送回网络边缘的设备。然而,这个系统也存在一些问题,因为数据从边缘设备返回中心处理需要更多的时间,这会给带宽带来很大的压力,从而将网络速度减慢到爬行状态。

边缘计算是一种资源丰富的网络基础设施方法,它利用了现代物联网设备和边缘数据中心的融合所驱动的大量处理能力。

随着边缘系统能力的不断增强,一些人认为边缘计算有能力最终取代传统的云计算基础设施。但是,这两种技术在IT生态系统中都具有重要而独特的作用。与物联网相比,边缘计算可以被看作是云计算的一种替代方法,它在数据源附近处理实时数据,而数据源被认为是网络的边缘。此外,与在云环境中一样,所有数据都是在一个集中的位置收集和处理的,通常是在一个数据中心,这样在保证可靠的远程访问的同时,通常很容易进行安全和控制。

然而,在某些情况下,云基础设施中存在一些问题和挑战,边缘计算可以在其中发挥重要作用,提高云计算的性能。

为什么边缘计算对云计算至关重要

由于各种各样的应用程序和不同的社交媒体平台每天都会生成大量的数据,所以所有的数据都在云中存储、计算、处理。但这通常会增加对用户的响应时间,而这应该通过网络边缘的数据处理能力来缓解。这一点非常重要,因为如果在靠近源的边缘处理源生成的数据,则响应时间会更短。边缘计算使计算资源和应用服务能够使用分散的计算基础设施分布在整个通信路径中。

除了收集要传输到云的数据外,边缘计算还对本地收集的数据进行处理、评估和操作。它有可能使分析能力更接近机器,从而消除了中间人的需要。



(编辑:宜春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读