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中的所有字符仅使用1个字节(较高的字节为0),则将使用byte []而不是char [](IS0-8859-1 / Latin1编码)。 会有一个再见指示使用哪种编码。
  • 未使用UTF8,因为它支持可变长度的字符,因此对于随机访问不起作用。
  • 字符串上的private final byte coder指示编码。 请注意,将来有空间支持更多编码。
  • 对于所有64位JVM,由于8字节对象对齐需要'死'空间,因此不需要额外的字段来存储额外的字段。
  • 在线提供400个JMH基准测试,吞吐量不会受到影响。
  • 原因是String高度优化,因为仅String就有55种特定的JVM功能。
  • 使用行业基准SPECjbb2015进行的延迟测试也得到了改进,并且在SPECjbb2005上进行了回归测试
  • 可以使用-XX:+ CompactStrings启用和禁用该功能,但是默认情况下将启用它。

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

了解有关JDK9紧凑弦乐的信息(视频回顾Charlie Hunt)相关推荐

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

    jdk 9和jdk8 JDK 9引入了一个称为紧凑字符串的新功能. 鉴于Java程序中字符串的普遍存在,我认为这是一个非常重要的更改,所有Java开发人员都需要理解. 在此视频中,查理·亨特(Char ...

  2. 信息传递趋势:未来将迈入信息视频化时代

    人类社会传递信息的载体经历了从文字到图片到声音,再到视频的进化,信息的表达更加的直观.丰富,方便了人与人之间的沟通以及信息的传递. 而人工智能的出现则带来了更多可能,人工智能将改变人类文明进程的言论甚 ...

  3. 用opencv查看视频信息(视频的宽度、高度、帧率和总得帧数)

    用opencv查看视频信息(视频的宽度.高度.帧率和总得帧数) // look_up_fps.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" ...

  4. 用OpenCV查看视频信息(视频的宽度、高度、帧率和总帧数)

    用OpenCV查看视频信息,包括:视频的宽度.高度.帧率和总帧数. 详细代码如下: //用OpenCV查看视频信息(视频的宽度.高度.帧率和总帧数)#include "stdafx.h&qu ...

  5. 视频回顾 | 微信生态数字化运营进阶课大全!

    随着微信生态的不断完善,小程序直播.视频号相继推出,订阅号史无前例大改版.小程序也将支持分享至朋友圈.背靠微信庞大的流量池,要如何提高用户留存.做好导流,以及付费转化?成为当前流量运营最关注的话题. ...

  6. 视频回顾 | Pulsar Summit Asia 2020 · 场景案例(上):即时零售, 金融证券, 物联网, 电信计费等...

    关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...

  7. 张力柯:从技术演变的角度看互联网后台架构(附视频回顾)

    5月25日,互联网架构技术沙龙圆满落幕.本期沙龙特邀请腾讯的技术专家分享关于技术架构.落地实践案例.无服务器云函数架构.海量存储系统架构等话题,从技术角度看架构发展,为开发者们带来丰富的实践经验内容, ...

  8. 视频回顾丨带你逛腾讯全球数字生态大会「腾讯技术工程」展区

    5月21-23日,为期三天的"腾讯全球数字生态大会"在昆明滇池国际会展中心召开,除了大咖云集的主论坛.干货满满的分论坛,大会展区里也干货满满,各种优秀解决方案.技术应用和黑科技引人 ...

  9. 视频回顾|Pulsar Summit Asia 2021,案例、运维、生态干货不断

    Pulsar Summit 是 Apache Pulsar 社区年度盛会,它将分布在世界各地的 Apache Pulsar 项目 Contributor.Committer 和各企业 CTO/CIO. ...

最新文章

  1. Libgdx学习笔记:Simple text input
  2. python自带模块连接数据库_Python模块Sqlite数据库模块
  3. dockerfile构建镜像的命令_编写Dockerfile的最佳实践
  4. 编译成功但链接失败的原因
  5. rome rss_RSS阅读器使用:ROME,Spring MVC,嵌入式Jetty
  6. php自动include,PHP include_php
  7. Jquery 强大的表单验证操作
  8. arduino交通灯编程代码_Arduino初初教程3 (交通灯)
  9. 怎样用c语言写高速超速罚款标准,如何做到科一满分一把过?超速扣分题必须掌握!...
  10. 2023年最热门的网络安全岗位分析
  11. 计算机硬盘没显示,移动硬盘不显示在我的电脑
  12. 《人物动作:角色骨骼、蒙皮制作工艺》
  13. glibc和musl libc的区别
  14. 手把手系列--验证自己编写的STM32H750XBH6_ArtPi平台Keil MDK Flash下载算法
  15. DBA常用命令——数据库导入导出文件
  16. ces展会的一点看法
  17. IBM服务器配置RAID5+热备教程
  18. linux 安装打印机驱动
  19. 代码可视化之 对“雅奇MIS”的认识
  20. Python 爬虫,推荐一款简单的抓包工具(续)

热门文章

  1. 《金色梦乡》金句摘抄(二)
  2. 使用java解析XML文件的步骤
  3. 新闻发布项目——实体类(comment)
  4. (链表 栈 队列 递归)
  5. JSP 获得服务器时间和浏览器时间
  6. java电商面试介绍
  7. ios刷android8.0,颤抖吧 iOS, Android 8.0正式发布!
  8. android java split_Java中的split函数的用法
  9. java多态+多态中隐含的问题
  10. apache.camel_Apache Camel 3.2 – Camel的无反射配置