企业网站实施方案,临沂网站维护,网站建设对策,新泰网站seojdk 9和jdk8JDK 9引入了一个称为紧凑字符串的新功能。 鉴于Java程序中字符串的普遍存在#xff0c;我认为这是一个非常重要的更改#xff0c;所有Java开发人员都需要理解。 在此视频中#xff0c;查理亨特#xff08;Charlie Hunt#xff09;解释了此新功能的历史和实现。… 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.htmljdk 9和jdk8