广州哪家做网站mt4外汇网站建设

web/2025/10/3 2:27:44/文章来源:
广州哪家做网站,mt4外汇网站建设,兰州网络营销推广价格,沈阳模板建站公司推荐文章目录前言一、什么是毕昇 JDK#xff1f;1.1、毕昇 JDK 发展历程1.2、毕昇 JDK 的支持架构1.3、毕昇 JDK、OpenJDK 和 Oracle JDK 区别二、为什么要做毕昇 JDK#xff1f;2.1、Oracle JDK 授权方式发生变化2.2、高版本 JDK 有价值特性的渴望2.3、应用的定制化优化诉求三、… 文章目录前言一、什么是毕昇 JDK1.1、毕昇 JDK 发展历程1.2、毕昇 JDK 的支持架构1.3、毕昇 JDK、OpenJDK 和 Oracle JDK 区别二、为什么要做毕昇 JDK2.1、Oracle JDK 授权方式发生变化2.2、高版本 JDK 有价值特性的渴望2.3、应用的定制化优化诉求三、毕昇 JDK 现状3.1、毕昇 JDK 研发现状3.2、毕昇 JDK 性能提升实例四、毕昇 JDK 的 GC 算法优化4.1、并行复制算法的概念4.2、架构对并行复制算法的影响4.3、并行复制算法的流程4.4、算法优化减少 membar 之 QA4.5、G1、GC 的优化4.6、ZGC 的优化五、JIT 优化——SVE 算法优化5.1、SVE 算法优化相关介绍5.2、SVE 算法优化成果六、软硬协同——鲲鹏 KAE 硬件加速七、毕昇 JDK 还能带来什么价值八、毕昇 JDK 的未来发展8.1、即将面世的功能8.2、未来方向九、如何获得毕昇 JDK 及帮助9.1、JDK 8 的代码仓9.2、JDK 11 的代码仓总结前言 不知道大家是否听说过亦或是使用过毕昇 JDK是否从事 Java 工作是否从事 JVM 底层开发绝大多数 Java 开发者使用的都是 Oracle 的 JDK 或者是 OpenJDK本文我们将介绍华为的毕昇 JDK 以及我们所做的相关技术优化希望能在除上述两者之外提供给大家新的选择。 一、什么是毕昇 JDK 1.1、毕昇 JDK 发展历程 毕昇 JDK 是华为基于 OpenJDK 定制的开源版本是一款高性能、可用于生产环境的 OpenJDK 发行版。稳定运行在华为内部 500 多个产品上在华为内部广泛使用毕昇 JDK团队积累了丰富的开发经验解决了实际业务运行中遇到的多个疑难问题。如 crash 等相关问题我们已经在内部解决。 1.2、毕昇 JDK 的支持架构 目前仅支持 Linux/AArch64 架构。欢迎广大开发者小伙伴们下载使用。目前毕昇 JDK 支持 8 和 11 两个 LTS 版本并且已经全部开源。 1.3、毕昇 JDK、OpenJDK 和 Oracle JDK 区别 我们通过对比和分析毕昇 JDK、OpenJDK 和 Oracle JDK来帮助大家在挑选 JDK 时有更好的选择。 如下图所示我们用蓝色的区域代表 OpenJDK浅黄色和红色分别代表 Oracle JDK 和毕昇 JDK。 以上图为参考我们可以发现 毕昇 JDK 和 Oracle JDK 一样都是基于 OpenJDK 定制得到但是又同时赋予了各自不同的商业特性。比如我们都知道 OpenJDK 12 添加了一个的新垃圾收集GC算法——Shenandoah但是在 Oracle JDK 的发行中是没有附带的。毕昇 JDK 在基于 OpenJDK 定制的基础上存在的些许区别主要来源于对产品功能的一些增强、问题的修复以及和上游特性的合入。 二、为什么要做毕昇 JDK 2.1、Oracle JDK 授权方式发生变化 除去大家“众所周知”的原因之外不知道大家是否知道Oracle JDK 在 8u212 版本之后是收费的。于公司而言结合 JDK 自身存在的安全漏洞问题综合商业因素考虑的结果就是研发符合自身发展的 JDK。 注以上数据来自 Oracle 官网。 2.2、高版本 JDK 有价值特性的渴望 JDK 每六个月发行一次新版本JDK 版本众多不同功能/特性在不同 JDK 版本。程序员期望在最熟悉的 JDK 上尽可能多的使用高版本中有价值的特性。例如 G1 GC 在 JDK12 中引入了一个特性把不使用的内存归还给操作系统该特性在云场景中非常有价值目前主流使用的还是 JDK8自研 JDK 中 Blckport 特性能快速满足需求。 2.3、应用的定制化优化诉求 应用在运行的硬件、场景有特殊的诉求但这些诉求短期难以进入到社区。例如大数据应用在数学方面有较高诉请求在自研 JDK 中可以针对数学计算做循环开展、指令优化等编译优化技术加速计算。 三、毕昇 JDK 现状 3.1、毕昇 JDK 研发现状 毕昇 JDK 和 Oracle JDK 一样都是基于开源 OpenJDK 定制得到。同时团队为上游社区贡献了不少有价值的 Patch涉及到垃圾回收、JIT、运行时内容等。毕昇 JDK 遵循 GPLv2 版权进行开源并且可以从官方免费下载二进制。毕昇 JDK采用社区化开发和运营双周会议目前有 ARM、宝兰德、麒麟等小伙伴一起参与。毕昇 JDK 社区不仅仅支持 ARM 平台任何关于 JDK 的问题都可以在毕昇 JDK 社区讨论都会在第一时间得到回复。在上游社区中团队目前有 Reviewer 1 名Committer 1名Author 8 名共 10 余名同事往社区提交代码。毕昇 JDK 在 ARM 上性能、稳定性表现优异。 3.2、毕昇 JDK 性能提升实例 我们通过在测试环境下运行毕昇 JDK 来分析其优势何在测试环境如下 ModelTaishan 2280V2OSopenEuler20.09HWkenpeng 920-6426 2600MHz128 coresJDKJDK8U262 我们通过比较在 SPECjbb 上的数据可以发现毕昇 JDK 在 critical 和 max 上均有较大的提升critical 提升 55%max 提升 16%。 另一方面在 SPECjvm 上的数据虽然说与上面相比并不是特别明显但是仍平均提升 4.6%。 四、毕昇 JDK 的 GC 算法优化 4.1、并行复制算法的概念 我们都知道复制是 GC 算法里面很重要的一部分特别是对于新生代的复制将 from 区中的活跃对象复制到 to 区中串行复制算法是仅有一个线程负责这个事情而这无法满足我们的需要。所以我们用到了并行复制算法那么什么是并行复制算法呢 对象 A 和 B 在并行复制算法中被不同的线程复制可能由于对象 A 和 B 有不同到达路径不同的线程复制。因为任务均衡的问题线程可以窃取其他线程的复制任务。例如有两个线程 T1 和 T2 分别复制对象 A 和 BT1A→A´T2B→B´。在复制时除了复制对象的内容外还需要使用一个指针Forwarding Pointer记录对象转移后地址防止对象被重复复制。 4.2、架构对并行复制算法的影响 多线程的并行工作需要考虑不同架构的内存模型。X86 是一种强内存序架构ARM 则是一种弱内存序它们的内存序如下表所示 对于并行复制算法来说在弱内存序架构下由于内存序的设计其他线程可能先观测到转移指针已经更新但是对象尚未复制。为保证一致性需要在复制和更新对象头之间插入 membar在 JVM 关于对象头更新统一抽象为 CAS 函数。CAS 在不同的体系结构实现不同X86 中采用 cmpxchgl 指令ARM 中采用 Ldaxr/Stlxr 指令。 4.3、并行复制算法的流程 并行复制算法的流程图如下图所示 拷贝对象 obj 到新的对象位置 new_obj插入 Memory Barrier对象 obj 通过 CAS 设置转移指针若成功则执行3失败执行4将 new_obj 的引用压入栈中返回 new_obj撤销之前分配的对象将 cas 成功线程的 new_obj 返回。 在热点分析中我们发现复制操作的 60% CPU 消耗在插入 Memory Barrier 上。 4.4、算法优化减少 membar 之 QA Q如果不插入 Memory barrier多个线程观察到内存不一致的情况在什么情况下会引入问题? A T1尚未完成对象复制但是已经将对象入栈。T2从 T1 的线程栈窃取待复制的对象并对尚未完成复制的对象进行成员变量的复制更新导致数据不一致。 Q对于不需要复制成员变量的对象例如:对象的成员变量全部是非引用类型对象的成员变量其引用类型全部为NULL对象本身是原始类型的数组还有必要使用 Memory Barrier? A NO Q 如何识别这些对象? A 静态分析对象可以发现对象的成员变量全部是非引用类型、原始类型的数组。已经开源。动态分析对象通过屏障技术识别。 通过对于并行复制算法的优化我们分别在 SPECjbb 和 SPECjvm 达到了较好的预期成果如下图所示 4.5、G1、GC 的优化 针对 G1 Full GC 优化Full GC 分为 4 个阶段分别是 Mark标记整个堆空间的活跃对象并记录活跃对象。Prepare计算每个活跃对象在就地压缩后的位置。Adjust根据对象新的地址调整对象成员变量的引用位置。Compact复制对象的内存数据。 Compact 阶段一般是最为耗时的涉及到内存数据的移动。那么 能否在允许一定浪费空间的前提下对于活跃对象多的部分分区不移动或者少移动从而提高算法效率 我们对活跃对象作下图 我们可以发现 分区活跃对象占比符合 U 型分布。对 Benchmark 进行研究有 41.27% 分区活跃对象占比在 98%。减少对象的移动在一定程度上也符合强分代理论的假设。测试发现对于类似的应用性能有 3~5% 的提高。 我们已经将相关代码贡献到社区欢迎大家前往查看。 4.6、ZGC 的优化 毕昇 JDK 11 是第一个在 ARM 架构中支持 ZGC 的 JDK。ZGC 的目标是管理 TB 级内存且垃圾回收的停顿时间控制在 10 毫秒。ZGC 的回收过程包括 3 步分别是并发标记(Mark)、并发转移Relocate)和并发重定位(Remap)。在转移的过程为了提高转移的效率只有当页面的垃圾回收空间达到一定比例才会参与转移。目前的实现中比例通过参数 ZFragmentLimit 控制该参数的默认值为 25。如何设置 ZFragmentLimit过大内存浪费过小回收效率低下。在 GC 执行的过程中收集转移的信息内存转移的速率、转移耗时并预测下一次 GC 可以转移的内存使用预测值来控制哪些页面可以参与转移。如下图所示 计算内存的转移速率 预测本次 GC 的转移速率 使用正态分布并辅以 99% 的置信度。预测本次 GC 的转移耗时 预测本次 GC 的转移字节 对于 Benchmark 的测试表明效果 3~5% 的提升代码已经开源正在往社区同步。 五、JIT 优化——SVE 算法优化 5.1、SVE 算法优化相关介绍 SVE(Scalable Vector Extension)是 ARM AArch64 架构的下一代 SIMD 指令集。 支持 SVE1 指令集。自动判断适应 SVE1/NEON支持 Z0~Z31 寄存器。支持从 128~2048 bits 全尺寸 SVE 寄存器。支持 PO~P7 谓词寄存器。支持大部分自动向量化(SuperWord)Node。 5.2、SVE 算法优化成果 VectorAPI 新增 Node 全部贡献到上游社区毕昇 JDK 目前暂未合入。到目前为止SVE一共向上游社区提交了 11 个patch相关代码超过 3000 行。 public static float sumReductionImplement(float[] a, float[] b, float[] c, float[] d, float total) {for (int i 0; i a.length; i) {d[i] (a[i] * b[i]) (a[i] * c[i]) (b[i] * c[i]);total d[i];}return total;}优化之后的 NEON 机器代码如下图所示 优化之后的 SVE 机器代码如下图所示 六、软硬协同——鲲鹏 KAE 硬件加速 KAE(Kunpeng Accelerator Engine)是华为鲲鹏服务器提供的硬件加速器在鲲鹏芯片中有一个独立的 I/O DIE 用于处理加解密功能。毕昇 JDK 提供了 KAEProvider充分发挥硬件能力应用只需要简单的适配无须代码开发即可使用鲲鹏服务器的硬件能力提供应用的运行效率。在毕昇 JDK 最新的版本发布了 4 款加解密算法AES、Digest、HMAC、RSA)在针对 Benchmark 的测试中部分算法可以加速 40%在安全领域将大大节约运行时间。目前和宝兰德正在进行联合开发。第二批算法的支持将于 Q2 发布。加解密方案是基于 JCA(Java Cryptography ArchitectureJava 加密架构是 Java 平台的重要组成部分。KAE 是基于 JCA 来提供加解密服务在毕昇 JDK 中称为 KAEProvider。流程如下图所示 JCA 提供 2 种方式选择不同的 provider通过代码指定或者配置文件。如下方式 1使用 Security API 添加 KAE Provider并设置其优先级。方式 2修改 jre/lib/security/java.security 文件添加 KAE Provider并设置其优先级。 七、毕昇 JDK 还能带来什么价值 经过评估和测试毕昇 JDK 目前还以社区的特性为基础 Backport 了一批有价值的特性。G1 NUMA一Aware该特性能充分发挥 NUMA 的优势在多核的硬件平台中效果更佳。毕昇 JDK 中还在社区的基础上修复了一些问题例如因为操作系统的线程调度导致线程在多个节点迁移迁移在 NUMA 特性上会导致一些内存分区无法得到有效回收增强了大对象的 NUMA一Aware 功能。效果提升如下图所示 在 JDK 10 中 AppCDS 的特性,其思路是将 String 对象类元数据对象存放到一个共享文件中让多个 JVM 进程能够通过共享信息减少类元数据对象的加载、解析。毕昇 JDK 通过移植该特性测试发现取得良好的效果对于大数据的一些场景可以优化接近 10%。G1 Uncommit在内存使用较低的情况下会通过周期性的触发 GC 进行垃圾回收并将回收后的内存归还给操作系统该特性对于云场景中能明显的降低内存的私有量。毕昇 JDK 在社区版本基础上将串行的内存释放修改为并发在最新的 JDK 16 中也采用了相同的实现)。 在开启 G1 Uncommit 后我们可以在下图中看到在内存不使用的场景中会稳步下降 而在实际的业务场景中效果更是显而易见的如下图所示 并行任务窃取机制优化在一些应用发现任务窃取占比很高。对于并行任务窃取 Google 对社区贡献了一个有价值的设计极大的优化了并行任务窃取。在毕昇 JDK 中PS、ParNew、G1、Shenandoah 等都因此而受益。 目前我们正在针对多核的服务器优化任务窃取待成熟后会继续开源。 八、毕昇 JDK 的未来发展 8.1、即将面世的功能 完善 KAE 硬件加速算法预计 Q2 发布。G1 GC 中并行 NUMA-Aware、Full GC 将落地于毕昇 JDK8Q2。jmap 增强针对 CMS 做并行 dump。 8.2、未来方向 积极参与社区中 SVE、Vector API 特性的开发、演进。目前提交代码超 3000 行。优化内存管理正在进行ZGC 分代、Thread Local GC、AOT 等项目。 九、如何获得毕昇 JDK 及帮助 下载 JDK 8 和 JDK 11https://kunpeng.huawei.com/#/developer/devkit/complier?dataJDK 9.1、JDK 8 的代码仓 https://gitee.com/openeuler/bishengjdk-8 9.2、JDK 11 的代码仓 https://gitee.com/openeuler/bishengjdk-11 总结 本文我们给大家介绍了何为毕昇 JDK整体的发展史如何是在什么样的形势下华为要做毕昇 JDK在底层的优化方面又做到了哪些同时又潜藏了哪些值得开发的价值正为华为编译器资深技术专家彭成寒老师所讲把数字世界带入每个人、每个家庭、每个组织构建万物互联的智能世界这是我们的追求 我是白鹿一个不懈奋斗的程序猿。望本文能对你有所裨益欢迎大家的一键三连若有其他问题、建议或者补充可以留言在文章下方感谢大家的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四川住房与城乡城乡建设厅网站做模板下载网站挣钱吗

文 | Akhil Raju源 | 机器之心在这里,既有头脑风暴,也有生活气息。本月初,时任苹果机器学习总监的 Ian Goodfellow 宣布在加入公司三年后辞职,没过几天,就有消息曝出大神去向定了,他将重返谷歌加入 DeepMin…

美容院网站源码如何在服务器上放网站

1.外墙外保温系统耐候性试验设备,测温点不应少于( ),每个测温点的温度与平均温度偏差不应大于( )。 A、2个,5℃ B、4个,5℃ C、2

天河企业网站建设网站总是跳转

目录 测试计划书 1. 引言 2. 测试目标 3. 测试方法 3.1 黑盒测试 (1)等价类划分: (2)边界值分析: (3)因果图: ​编辑(4)错误推测法 3.2 白盒测试 测试用例!! 4. 测试环境 5. 测试计划 6…

建设企业网站官网登录网站可以做二维码吗

十年婚姻总结八 女人一生的合伙人不能只是帅哥哥 女人一生的合伙人不能只是帅哥哥 浪漫的本质还是你的筹码。 比如你送男人5万的手表,但你没什么其他筹码(皮肤粗糙蜡黄、没人脉金钱资源、长的胖)。 那个男人会觉得你胡闹,你送的…

建筑网站模版网站权重排行榜

遇到问题,npm install less-loader7.3.0 --save安装好less-loader后,执行npm run serve 项目运行不起来,排查后发现在安装less-loader后就提示需要安装less,正确的安装应如下: npm install less less-loader7.3.0 --sa…

可信网站标准版做网站一万

对于那些拥有多个微信号的用户来说,频繁地在不同微信号和设备之间切换既麻烦又容易搞混。这时候,一款多微信聚合聊天神器——微信管理系统应运而生,为我们带来了极大的便利与高效。 下面一起来看看它都有哪些功能吧! 1、多微信同…

江西建设信息网站营销推广方式

NoSQL-Redis集群 一、集群:1.单点Redis带来的问题:2.解决:3.集群的介绍:4.集群的优势:5.集群的实现方式: 二、集群的模式:1.类型:2.主从复制: 三、搭建主从复制&#xff…

直接ip访问网站页面设计介绍

Spring事务-两种开启事务管理的方式 1、前期准备2、基于注解的声明式事务管理3、基于编程式的事务管理4、声明式事务失效的情况 例子:假设有一个银行转账的业务,其中涉及到从一个账户转钱到另一个账户。在这个业务中,我们需要保证要么两个账户…

建立内部网站需要多少钱郑州男科

目录 专栏导读之前的课程1、小球类设计2、挡板类的设计3、砖块类4、砖块与小球的边界碰撞检测5、检测到碰撞,删除砖块,改变运动方向完整版代码总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 …

网站建设的前期准备微博代替wordpress评论框

文章目录 vue3使用响应式数据 v-model导致响应式失效el-form表单无法输入的问题 vue3使用响应式数据 v-model导致响应式失效el-form表单无法输入的问题 参考文章 重构vue2项目时发现的问题,原始项目使用的是Element-ui。 其实vue3可以使用适配的Element-plus 问…

深圳网站建设公司服务平台如何建立小程序商城

题目描述 题目链接:21. 合并两个有序链表 - 力扣(LeetCode) 题目分析 这个算法思路很简单:就是直接找小尾插 定义一个tail和head,对比两个链表结点的val,小的尾插到tail->next,如果一个链表…

网站是怎么搭建的做好网站建设静态化

SQL优化是提升数据库性能的重要手段,以下是SQL优化的详细知识点: 正确使用索引:索引是加速数据检索的关键因素,可以通过合理的索引设计来提升查询性能。例如,在频繁使用的列上创建索引,使用联合索引等。 避…

蓝海国际版网站建设网络组建与安全通知

Vue.js 是一个流行的前端 JavaScript 框架,它提供了一种用于构建用户界面的渐进式方法。Vue 组件的生命周期钩子函数是一些特定的函数,它们在组件不同阶段被自动调用,可以让你在这些阶段执行特定的逻辑。下面是 Vue 组件的生命周期钩子函数以…

广东网站建站系统哪家好wordpress屏蔽广告

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现strstr函数功能 C 库函数 char *strstr(const char *haystack, const char *nee…

学校网站方案阜阳做网站

v-for​ 我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名&#xff1a; const items ref([{ message: Foo }, { message: Bar }]) <l…

垂直购物网站建设网站备案进程查询

Node.js中Buffer API详解 在Node.js中&#xff0c;Buffer是一个用于处理二进制数据流的全局对象&#xff0c;它类似于数组&#xff0c;但可以存储任意大小的数据。Buffer对象是由C代码实现的底层结构&#xff0c;而JavaScript代码则提供了一些高级的API。本文将介绍Node.js中B…

顺德区建设局网站做跳转链接到自己的网站

一、成员变量及其基本结构 1.基本结构模型 本质是一个带头双向循环列表&#xff0c;将节点进行封装&#xff0c;并且为了方便使用&#xff0c;进行重定义 2.节点的封装定义 template<class T>//定义节点struct list_node{list_node<T>* _prev;list_node<T>…

中山 网站关键词优化如皋建设网站

首先创建一个对象 将这个对象使用mybatis插入数据库 Student stu new Student(null, "stu", 18, null); mapper.insertEntity(stu); System.out.println(stu); 在mapper.xml文件中开启配置之后输出传入的stu对象就会有主键id回传 <!-- 插入语句示例 int ins…

企业网站seo手机优化关键词的公司

线程 一、JAVA中创建线程的两种方法&#xff1a; 1.继承java.lang.Thread类。 2.实现java.lang.Runnable接口。 3.在JAVA中Thread类实现了Runnable接口&#xff0c;并且Thread类中定义了许多与线程相关的属性与方法。 二、run():线程体&#xff0c;线程将要执行的代码。 三、线…

网站建设中倒计时源码2018一级a做爰片免费网站

前言 该系列文章用于我对一周中leetcode每日一题or其他不会的题的复盘总结。 一方面用于自己加深印象&#xff0c;另一方面也希望能对读者的算法能力有所帮助&#xff0c; 同时也希望能帮助同样坚持刷题的同学加深印象~ 该复盘对我来说比较容易的题我会复盘的比较粗糙&#…