当前位置: 网站首页>小程序开发>网站优化

鄢陵网站优化【鄢陵开通400电话】鄢陵网站搭建、鄢陵微信公众号推文外包、鄢陵开通京东拼多多设计、鄢陵淘宝装修

发表日期: 2021-04-25 14:19:33 浏览次数:168

鄢陵网站优化【鄢陵开通400电话】鄢陵网站搭建、鄢陵微信公众号推文外包、鄢陵开通京东拼多多设计、鄢陵淘宝装修



鄢陵县隶属河南省许昌市,位于河南省中部,千里伏牛山脉东方,万里母亲河黄河南侧;西靠长葛市、建安区,北与开封市,东与周口市,南与漯河市接壤,现辖12个镇,386个行政村(社区),总人口66.7万人,总面积866平方公里(耕地99.6万亩)。

近年来,鄢陵县坚持“五位一体”总体布局和“四个全面”战略布局,坚持创新、协调、绿色、开放、共享发展理念,着力建设生态鄢陵、富强鄢陵、文明鄢陵、幸福鄢陵,在全面建成小康社会的征程中迈出了坚实步伐。 [1] 

鄢陵县处在中原高速公路网核心区,毗邻郑州航空港经济综合实验区,北距新郑机场50公里,西距京广铁路(京广高铁)、京港澳高速20公里,兰南高速、永登高速、机西高速和郑合高铁、三洋铁路贯穿全境,形成了四通八达、方便快捷的交通体系。 [1] 

鄢陵是全国商品粮基地和优质棉生产基地县。鄢陵县花卉苗木种植种植面积达60万亩。2011年被农业部、国家旅游局认定为“全国休闲农业与乡村旅游示范县”。 [2] 

2020年6月,入选国家森林康养基地(第一批)名单。

2020年10月9日,被生态环境部授予第四批国家生态文明建设示范市县称号。

2020年11月27日,鄢陵县被河南省林业局“省级森林城市”荣誉称号 [3]  。





1.1 G1GC 和实时性

G1GC 最大的特征是非常重视实时性。本节首先会介绍一般意义上的实时性,然后再探讨 G1GC 中的实时性是什么样的。

1.1.1 实时性

处理实时性的要求是,它必须能在最后期限(deadline)之前完成。

最后期限可以自由指定。如果指定的期限较短,那么程序就要保证在短时间内完成处理;相反,如果指定的期限较长,那么程序只要能保证在这个较长的时间内完成处理就可以了。

另外,即使同为实时程序,如果处理内容不同,最后期限的重要性也会很不一样。有些处理只要超出最后期限一次,就会带来致命的问题,而有些处理稍微打破几次最后期限也不会有太大的问题。这两种处理分别称为“硬实时性(hard real-time)处理”和“软实时性(soft real-time)处理”。

1.1.2 硬实时性和软实时性

硬实时性的处理,多存在于保护人类免于受伤、远离危险,以安全为第一位的场景中。例如,医疗机器人控制系统、航空管制系统等都会要求硬实时性。如果这类系统中的处理超出了最后期限,很可能出现致命的问题。而且,硬实时性的处理必须在处理开始后的很短时间内完成。

软实时性处理多用于稍微超出几次最后期限也没什么问题的系统中,例如网络银行系统。用户总会期待所有的交易都能完美地处理好,但是稍微超出几次最后期限,比如交易完成界面的展示慢了一些,应该也不会构成致命的问题。

软实时性的处理可以超出最后期限,但超出期限的频率很重要。只有超出频率在用户能够容忍范围之内的处理,我们才能说它具备软实时性。

1.1.3 可预测性

《Java 并发编程实战》[2] 的作者之一布赖恩·戈茨(Brian Goetz)曾在一篇文章 [7] 中像下面这样写道:

实时处理很多时候会与“高速性”相关。但是,高速性其实只是实时处理的特征之一。

对于实时处理来说,真正重要的特征是“可预测性”。

实时处理必须尽力保证不超出最后期限。因此相比高速性,可预测性更重要一些。

这里所说的可预测性,指的是“可以预测处理大约会耗费多长时间”。即使处理速度再快,如果无法在执行前预测出需要的时间,处理也是没有使用价值的——因为该处理存在随时超出最后期限的可能。如果能够预测出大致的处理时间,就可以据此来评估是否会超出最后期限。如果有超出期限的可能,就可以事先采取应对措施,例如对处理内容进行分解。

因此,在保证实时性方面,可预测性是一个重要的因素。

1.1.4 G1GC 中的实时性

G1GC 具有软实时性。为了实现软实时性,它具备以下两个功能。

① 设置期望暂停时间(最后期限)

② 可预测性

①是支持用户自定义 mutator 暂停时间的功能。G1GC 具有软实时性,因此会尽力保证处理不超过该暂停时间。

②是用来预测下次 GC 会导致 mutator 暂停多长时间的功能。根据预测出来的结果,G1GC 会通过延迟执行 GC、拆分 GC 目标对象等手段来遵守①中设置的期望暂停时间。通过这种方式,能够尽量减少超出用户期望暂停时间的频率,从而实现软实时性。

1.1.5 Java 中出现 G1GC 的背景

Java(OpenJDK)中已经存在并行 GC、并发 GC 和增量 GC1 等多种 GC 算法。除了 Java 之外,没有哪种语言提供这么多的 GC 算法供用户选择。那么,Java 为什么还要增加新的算法 G1GC 呢?

1增量 GC :通过慢慢地进行 GC 来缩短 mutator 最大暂停时间的一种手段。

现在,Java 语言广泛用于服务端应用程序的开发,而其中有些应用程序需要具备软实时性。例如,管理电话呼叫的服务端应用程序等(实际上已经存在一些用 Java 语言实现的应用程序了 2)。

2出自参考文献 [3] 中的“1.INTRODUCTION”。

这类应用程序当前主要是采用增量 GC 或者并发 GC 来缩短最大暂停时间的。但是,缩短最大暂停时间很容易导致吞吐量 3 下降。还有,因为无法预测暂停时间,GC 可能会有 mutator 长时间停止的风险。

3吞吐量:单位时间内回收垃圾的量。如果 GC 的吞吐量下降,总的暂停时间就会变长。

于是 G1GC 诞生了,其目的就是高效地实现软实时性。Java 先前的 GC 算法都在一味地尝试缩短最大暂停时间,而 G1GC 则是让用户去设置期望暂停时间。用户按照自己的需求设置合适的 GC 暂停时间,在确保吞吐量比以往的 GC 更好的前提下,实现了软实时性。

另外,追求软实时性的服务端应用程序,大都运行在拥有巨大的堆 4 和多处理器的服务器设备之上。因此,内部的 GC 算法必须能够在短时间内以高吞吐量来处理巨大的堆,而且还要高效地发挥多处理器的优势。G1GC 的设计就很符合这些要求,它能够最大程度地利用服务器上多处理器的优势,而且在处理巨大的堆时,也不会降低 GC 的性能。

4堆:程序运行时用于创建对象的内存区域。

1.2 堆结构

G1GC 中的堆结构和列车 GC5 中的堆结构非常相似。

5详情可参考“GC 书”算法篇中的 7.7 节。

堆的内部被划分为大小相等的区域,所有区域排列成一排。G1GC 以区域为单位进行 GC。用户可以随意设置区域大小,但是内部会将用户设置的值向上调整为 2 的指数幂(2^n),并以该正数作为区域的大小(图 1.1)。

图 1.1 堆结构

如果正在分配对象的某个区域已经满了,GC 线程会寻找下一个空闲的区域来继续分配。空闲区域是通过链表进行管理的,因此查找的时间复杂度是固定的 O(1)

1.3 执行过程

下面我们简要地介绍一下 G1GC 的执行过程。G1GC 主要有下面两个功能。

① 并发标记(concurrent marking)

② 转移(evacuation)

并发标记基本能和 mutator 并发执行,会针对区域内所有的存活对象 6 进行标记。

6存活对象:活着的对象,即有可能被程序使用的对象。

转移负责释放堆中死亡对象所占的内存空间。

首先,从众多区域中选择一个进行 GC 操作。如果该区域中有存活对象,则将其复制到其他空闲区域中(图 1.2)。

图 1.2 堆的状态

白色区域是空闲区域,灰色区域是使用中的区域。左图表示的是在选中区域后开始将存活对象复制到空闲区域的操作;右图表示的是转移后堆的状态。为了方便展示,图中的区域以二维的方式排列,但是在内存中其实是如图 1.1 所示排列成一排的。

当选择的空闲区域也满了的时候,GC 线程会再次选择其他空闲区域来存放存活对象。对象复制完成之后,只剩下死亡对象 7 的区域会被重置为空闲区域以便复用。

7死亡对象:已死亡的对象,即不可能再被程序使用的对象。

转移其实也起到了压缩 8 的作用,因此 G1GC 中的区域不会发生碎片化 9

8压缩:将存活对象挤到内存中同一侧的操作。因为压缩之后对象之间没有空隙,所以区域不会有碎片化的问题。

9碎片化:对象零散地存在于堆中的现象。

1.4 并发标记和转移

正如上一节中提到的那样,G1GC 的主要功能是并发标记和转移。其中并发标记由并发标记线程来执行。

并发标记的作用是在尽量不暂停 mutator 的情况下标记出存活对象。而且,还需要在并发标记结束之后记录下每个区域内存活对象的数量。这个信息在转移时会用到。

转移的作用是将待回收区域内的存活对象复制到其他的空闲区域,然后将待回收区域重置为空闲状态。这很像复制 GC 算法,只不过是以区域为单位进行的。

需要注意的是,并发标记和转移在处理上是相互独立的。并发标记的结果信息对于转移来说并不是必须的。因此,转移处理可能发生在并发标记开始之前,也可能发生在并发标记的过程中。



微信图片_20210425092605.jpg


鄢陵网站优化鄢陵开通400电话鄢陵网站搭建、鄢陵微信公众号推文外包、鄢陵开通京东拼多多设计、鄢陵淘宝装修

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878