加入收藏 | 设为首页 | 会员中心 | 我要投稿 柳州站长网 (https://www.0772zz.cn/)- 基础存储、数据迁移、云安全、数据计算、数据湖!
当前位置: 首页 > 站长资讯 > 动态 > 正文

数据分析工具篇

发布时间:2021-01-27 13:13:12 所属栏目:动态 来源:互联网
导读:负载均衡器主要处理四种流量类型,包括: HTTPS -负载均衡处理HTTPS流量通过设置X-Forwarded-For,X-Forwarded-Proto和X-Forwarded-Port头部给予后端对原请求的其他信息。 HTTP-类似HTTPS。 UDP-某些负载衡器支持使用UDP的DNS和syslogd等协议的平衡。 TCP -T

负载均衡器主要处理四种流量类型,包括:

  • HTTPS -负载均衡处理HTTPS流量通过设置X-Forwarded-For,X-Forwarded-Proto和X-Forwarded-Port头部给予后端对原请求的其他信息。
  • HTTP-类似HTTPS。
  • UDP-某些负载衡器支持使用UDP的DNS和syslogd等协议的平衡。
  • TCP -TCP流量也可以分布在负载平衡器之间。到数据库集群的流量将是一个很好的例子。

按照常规开发角度可分为 中间件负载均衡和 客户端负载均衡

中间件负载均衡

使用独立的负载均衡器,对与客户端和服务端开发来说是无感知的,例如:硬件的F5,软件的Nginx。
 

这样大家应该就能理解了,主要就是如果「序列长度不是2的次方」的话,后续划分序列的时候就会出现上述与我们类似的情况.毕竟我们划分区间的 整个过程就类似于「将区间中心划分成一个二叉树」.

复杂度分析:

理解完归并排序的基本思想之后,我们就需要来分析一下他的时间复杂度,空间复杂度.

  • 时间复杂度

如图所示,两个代码在给定的指令方面非常相似。但是,仔细观察,会发现字节码中有一些细微的(但是很重要的)差异。在代码1中,可以看到STORE_NAME和LOAD_NAME,但是在代码2中,可以看到STORE_FAST和LOAD_FAST。运行时间的差异似乎是由于这两种指令类型的不同造成的。可以查看ceval.c文件来了解其中的差异。

简而言之,在代码1中,解释器处理变量i和x的方式与代码2不同(注意_NAME和_FAST后缀)。代码1中,i和x都是全局变量,而CPython将这些变量存储在字典数据结构中,这使得加载过程比存储在固定大小数组中的局部变量耗时更久。与字典相比,从固定大小的数组中检索变量要快得多。

为什么Python这么做?很简单,因为在主代码中,不知道有多少变量会出现,但是在一个函数中变量的数量是固定的。

如果这是原因所在,来做个测试:把解释器打乱,在代码2(快速代码)中将x和i变量定义为全局变量,并再次测量运行时间。这是改变后的代码2:

本文不详细介绍dis包的细节,只关注Operation Named的一列。Operation name指示Python解释器的行为。如果你非常好奇,那么名为ceval.c的文件可以回答。以上两个代码都运行了dis.dis(),为了简化操作,本文突出显示重要部分,即循环部分。下图显示了这两个代码的字节码:


(编辑:柳州站长网)

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

    热点阅读