jdk 9和jdk8_了解有关JDK9紧凑弦乐的信息(视频评论Charlie Hunt)
生活随笔
收集整理的這篇文章主要介紹了
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
總結
以上是生活随笔為你收集整理的jdk 9和jdk8_了解有关JDK9紧凑弦乐的信息(视频评论Charlie Hunt)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rxjava 并行_使用RxJava和C
- 下一篇: 正史上商鞅的妻子是谁(历史上商鞅老婆有几