jdk 9和jdk8_了解有关JDK9紧凑弦乐的信息(视频评论Charlie Hunt)

jdk 9和jdk8

JDK 9引入了一个称为紧凑字符串的新功能。 鉴于Java程序中字符串的普遍存在,我认为这是一个非常重要的更改,所有Java开发人员都需要理解。

此视频中,查理·亨特(Charlie Hunt)解释了此新功能的历史和实现。 该视频实际上与紧凑字符串无关。 仅将紧凑型字符串作为案例研究来介绍,以说明如何通过大量工作来共同改善三腿工作,延迟,吞吐量和内存占用。

如果您有时间,我绝对建议您观看整个视频,尽管紧凑弦乐的实际部分始于26:24。

如果您需要5分钟的概述,请看以下要点:

  • 字符串密度(JEP 254紧凑字符串)是JDK 9的功能。
  • 目的是在不影响性能(延迟或吞吐量)的同时减少内存占用,并保持完全的向后兼容性。
  • JDK 6引入了压缩字符串,但是从未将其引入以后的JVM中。 这是一个完整的重写。
  • 为了确定可以节省多少内存,分析了960个不同的Java应用程序堆转储。
  • 堆转储的实时数据大小在300MB到2.5GB之间。
  • char []消耗了10%到45%的实时数据
  • 绝大多数字符的大小只有一位(即ASCII)
  • 75%的字符数组小于等于35个字符
  • 平均而言,应用程序大小的减少为5-15%(由于标题大小,char []大小减少了约35-45%)
  • 实现的方式是,如果String中的所有char只使用1个字节(较高的字节为0),则将使用byte []而不是char [](IS0-8859-1 / Latin1编码)。 会有一个再见指示使用哪种编码。
  • 未使用UTF8,因为它支持可变长度的字符,因此对于随机访问不起作用。
  • 字符串上的private final byte coder指示编码。 请注意,将来有空间支持更多编码。
  • 对于所有64位JVM,由于8字节对象对齐所需的“死”空间,因此不需要额外的字段来存储额外的字段。
  • 在线测试400个JMH基准后,吞吐量不会受到影响。
  • 原因是String高度优化,因为仅String就有55种特定的JVM功能。
  • 通过行业基准SPECjbb2015进行的延迟测试也得到了改善
  • 可以使用-XX:+ CompactStrings启用和禁用功能,但是默认情况下将启用。

翻译自: https://www.javacodegeeks.com/2016/02/learn-jdk9-compact-strings-video-review-charlie-hunt.html

jdk 9和jdk8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值