infoq

.marker { color: #000; background-color: #FF0; }

Azul Systems在生产超过大型系统行业标准的JVM和算法方面一直处于行业领先地位。 Azul首席技术官兼联合创始人Gil Tene从心底向InfoQ谈到了Azul如何应对一些行业挑战。

InfoQ:让我们从新版本的Zing开始。 这是在JavaOne的9月份问世的。 您能否解释这些新功能,以及它们如何适合您的总体路线图?

吉尔 :此版本中有一些重要事项。 我要强调的两件事是这是Zing的第一个支持Java 8的版本,它在Oracle的第一个Java 8版本发布大约6个月后才发布,这非常不错。 我们是除Oracle之外唯一提供Java 8版本的JVM供应商,尽管我们当然也有Zulu,我们的OpenJDK二进制版本也是Java8。因此,我们在市场上领先一些,我们希望比Java 9更具侵略性。

其次,我们增加了使用称为ReadyNow的功能集记录优化日志的功能。 重点是避免或消除预热或反优化风暴的放缓。 这对于诸如市场开盘或收盘之类的事件,或者只是Web应用程序的流程响应时间而言非常重要。 许多金融服务客户都要求我们进行此工作。 在Azul的历史中,垃圾回收之后,这一直是用户最要求的功能。

现在已经开发了两年,需要明确。 我们从今年早些时候的ReadyNow的第一套功能开始,解决了一些非优化的根本原因,以及一些指导编译器以特定方式处理方法的方法。 在新版本中,我们增加了使用上一次运行的优化日志的功能,并以此影响此运行所做出的决策。 特别是,这使用户可以告诉JVM避免在上一次运行中执行的激进优化,但是必须在运行期间取消优化,因为这是我们要解决的真正的用户痛苦。

InfoQ:当您的运行与以前的基准有显着差异时,您会怎么做?我有时将其称为“非农工资日问题”? 如果您存档的优化决策在非常规情况下不是最佳选择,将会发生什么?

吉尔 :如果我们谈论的是直到昨天一直存在的优化,但实际上并没有在今天应用,那么就目前的情况而言,我认为在这种情况下我们还无能为力。 但是,从我们所看到的情况来看,这是非常罕见的情况。 更常见的是在昨天的运行早期应用的优化,结果发现它是不正确的,已被取消优化,直到昨天运行结束都无法幸免。

例如,在算法交易的情况下,代码正在侦听大量市场数据,并且可能仅很少执行(取决于算法交易的类型)。 因此,编译器可以针对不进行交易的情况进行优化,然后,您发现您确实进行了交易,因此显然您希望该代码也更快。

希望到今天结束时,JVM已经足够稳定,因此最初的过度积极的优化已针对实际情况进行了优化和重新优化,您可以掌握该知识并加以应用,而不必每天从头开始学习。 。

InfoQ:此类中的一些优化示例是什么?

Gil :基于小型代码集的类层次结构优化,此后由于类加载而无效。 或基于未采用路径的任何优化,例如分支预测。 但是,重要的是要了解我们不记得昨天的优化,也没有在启动时应用编译。 我们正在记住统计信息-这是一个重要的区别。 Java在初始化方面有明确的语义,我们不能强迫这种事情尽早发生。 因此,我们拥有完整的统计信息,并且只有在有可用的类时,我们才能进行优化,但它们会与昨天的计数器一起进行。

InfoQ:让我们谈谈祖鲁语。 这是您的新OpenJDK构建,在您的新闻稿中我看到它被描述为唯一受支持的OpenJDK构建。 红帽的IcedTea产品怎么样? 是Red Hat尚未将OpenJDK 8作为IcedTea发行吗?

吉尔 :是的,是的。 我每两周左右进行一次检查,但是到目前为止,我们只有OpenJDK 8的二进制发行版。可以从其他人那里获得实验性的源代码树构建,但是Red Hat几乎是唯一的其他源代码开发人员获取OpenJDK二进制文件。

InfoQ:Debian不稳定似乎发布了OpenJDK 8构建。

Gil :如果将其下拉并执行“ java -version”,您会发现它声称是Java 8 Update 40,直到2015年3月才出现。这是从二进制文件中删除代码的一个很好的例子互联网,并认为这意味着它所声称的含义。 今天没有JDK Update 40。 这是一个问题,因为Docker将其用于Java的“正式”构建,而当真正的Update 40版本发布时,它可能是完全不同的二进制文件。 “ Update 40”这个名称不应该用于他们今天要发货的产品-它不仅限于一家公司,因为它给我们所有人起了一个不好的名字,因为用户不知道他们是否可以信任OpenJDK构建。

作为Zulu的直接React,我们已经做了一些事情。 Azul证明我们的二进制文件具有特定校验和的特定.rpm或.deb或.zip已通过所有测试(包括我们的压力测试),并且与Java Testing Compatibility Kit(TCK)完全兼容,并且与该产品兼容。 Java规范 我们对所有已发布的二进制文件进行认证,以便人们可以知道Zulu是可信任的。 我不知道它能否完全解决问题,但我认为让负责任的OpenJDK二进制文件的构建者将其二进制文件标识为“良好”可以帮助您解决混乱问题。 例如,我希望看到Red Hat能够做到这一点,因为我知道它们会产生非常好的和经过良好测试的JDK。

InfoQ:就目前而言,Debian(和Docker)中的OpenJDK尚未通过任何形式的TCK。

吉尔 :是的。 我们之所以知道这一点,是因为我们可以转到OpenJDK TCK的签署者页面,并且可以看到Canonical或Debian项目中没有任何人。 因此,不可能知道他们运送的版本已经通过了TCK。

更新:自从记录了这次采访之后,Canonical已添加到SE 8的签署者页面。

InfoQ:我注意到FreeBSD基金会也是OpenJDK TCK的签字人。

吉尔 :我也为此感到惊讶,但对他们有好处,我认为那是一件好事。 我希望有一些需要Java的基于FreeBSD的设备,而且FreeBSD的开发者处于领先地位。 OpenJDK TCK是一个相当友好的许可证,任何想要构建或分发最终用户可以信任的OpenJDK二进制文件的人都应该使用它。

顺便说一下,我们在Docker存储库中建立了Zulu。 如果搜索Zulu(或者希望是OpenJDK),则可以找到JDK 6、7或8的二进制文件。

关于被访者

Gil Tene是Azul Systems的首席技术官和联合创始人。 在过去的25年中,他一直从事虚拟机技术的研究,自1995年以来,他一直在开发基于Java技术的产品。

翻译自: https://www.infoq.com/articles/Gil-Tene-QA/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

infoq

infoq_InfoQ与Azul Systems Gil Tene谈论Zing,Zulu和新版本相关推荐

  1. iar定义arm版本_IAR Systems发布 IAR Embedded Workbench for ARM新版本

    IAR Systems发布IAR Embedded Workbench for ARM嵌入式开发平台最新版本V5.41.相比于之前的版本,新版本软件在支持Cortex-M0上,将代码大小和执行速度这两 ...

  2. JVM性能优化, Part 5:Java的伸缩性

    感谢朋友[吴杰]投递本文. JVM性能优化系列文章由Eva Andearsson在javaworld上发表共计5篇文章,ImportNew上有前4篇译文.本文(第5篇)由吴杰翻译自:javaworld ...

  3. 2019年JDK市场概述

    2019年JDK市场概述 2019.5.6 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. 一.Oracle JDK 由于Oracle JDK 8的免费公共更新结束,并且Oracle ...

  4. azul zing_Azul Systems CTO讨论Lambda并提高Java社区的投入

    azul zing 替代JVM的构建者Azul Systems的CTO和联合创始人Gil Tene从90年代中期开始就将基于Java的产品组合在一起. 在最初发表于4月版的< JAX杂志> ...

  5. Azul开源Zing Jvm

    Azul Systems 工程部副总裁和合作创始人Shyam Pillalamarri向InfoQ说明道: 我们的部署很大一部分基于开源组件,所以我们认为:"假设我们不能将一些有价值的东西免 ...

  6. 从off-heap到Azul's Zing(JVM)

    参阅下面文章: <Difference between "on-heap" and "off-heap"> <JVM性能优化,Java的伸缩性 ...

  7. azul zing_Azul垃圾收集器

    azul zing 介绍 Java语言规范要求某种形式的自动垃圾回收来回收未使用的存储,并禁止手动分配内存. 自动垃圾回收使程序员不必担心释放不再需要的对象,否则可能会消耗大量的设计工作. 它还可以防 ...

  8. zing开发者_Zing免费开放Java开发人员

    zing开发者 强大的Zing JVM的开发商Azul Systems承诺效忠Java的发展,并向开源开发人员发布了免费版本. Zing可以说是市场上最先进的JVM,它基于Oracle的Hotspot ...

  9. 更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动

    Zing虚拟机文档Understanding Java Garbage Collection(了解Java垃圾收集) 首先说明这个Zing是收费的,但是他也是优秀的,我觉得我们可以研究下他的一些思想对 ...

最新文章

  1. linux ap程序,ubuntu(linux)无线网卡开启/关闭wifi(AP)
  2. springboot dubbo引入包_spring boot 集成 dubbo 企业完整版
  3. YOLACT++:目前最热门的实时实例分割开源库
  4. c语言突然出现图片,c语言能显示图片吗
  5. Linux内核源代码分析——swap实现
  6. ICPC2020小米网络选拔赛第一场复盘
  7. 验证服务器的通用性,通用VNFM部署的可行性分析与验证
  8. 计算机耗材设备管理系统,云南省审计厅计算机耗材管理系统分析与设计
  9. AutoAnswer使用指南(QQ、微信自动接听)
  10. 三维点云数据处理软件-图像重建点云或LiDAR扫描点云
  11. 【selenium-python】显式等待和隐式等待的使用和区别
  12. 决策树(2.回归树)
  13. 线性表的顺序存储结构——顺序表
  14. SpringBoot使用SSE推送消息
  15. Unity教程之-制作闪亮的星星Star(二):创建Shader
  16. TFX发展简史/《Towards ML Engineering: A Brief History Of TensorFlow Extended (TFX)》
  17. from home edition to professional on windows
  18. web开发 简单的html
  19. WordPress多本小说主题–WNovel主题发布,十分钟搭建小说站! 现已更新至1.2版本...
  20. 跨境电商系统开发-电商商城系统平台定制方案

热门文章

  1. Android图形显示系统原理
  2. SparkRDD优化(二)之SparkRDD共享变量(广播变量,累加器)
  3. matlab生成三维分形,MATLAB生成分形树.ppt
  4. U-boot下编写代码对SPI flash进行操作
  5. MATLAB terminal远程启动桌面GUI界面
  6. 群体智能算法:细菌觅食算法
  7. 转盘抽奖图片html,html转盘抽奖
  8. python中trun是什么意思_Python 中 'unicodeescape' codec can't decode bytes in position XXX: trun錯誤解決方案...
  9. Multisim基础 电流控制的电流源 简单示例
  10. 微信配置JS接口安全域名问题-Nginx配置