了解有关JDK9紧凑弦乐的信息(视频回顾Charlie Hunt)
生活随笔
收集整理的這篇文章主要介紹了
了解有关JDK9紧凑弦乐的信息(视频回顾Charlie Hunt)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
JDK 9引入了一個稱為緊湊字符串的新功能。 鑒于Java程序中普遍存在字符串,我認為這是一個非常重要的更改,所有Java開發(fā)人員都必須理解。
在此視頻中,查理·亨特(Charlie Hunt)解釋了此新功能的歷史和實現(xiàn)。 該視頻實際上與緊湊字符串無關。 僅將緊湊型字符串作為案例研究來介紹,以說明如何通過大量工作來共同改善三腿工作,延遲,吞吐量和內存占用。
如果您有時間,我絕對建議您觀看整個視頻,盡管緊湊弦樂的實際部分始于26:24。
如果您需要5分鐘的概覽,請看以下要點:
- 字符串密度(JEP 254緊湊字符串)是JDK 9的功能。
- 目的是在不影響性能(延遲或吞吐量)的同時減少內存占用,并保持完全的向后兼容性。
- JDK 6引入了壓縮字符串,但是從未將其引入以后的JVM中。 這是一個完整的重寫。
- 為了確定可以節(jié)省多少內存,分析了960個不同的Java應用程序堆轉儲。
- 堆轉儲的實時數(shù)據(jù)大小在300MB到2.5GB之間。
- char []消耗了實時數(shù)據(jù)的10%至45%
- 絕大多數(shù)字符的大小僅為一位(即ASCII)
- 75%的字符數(shù)組不超過35個字符
- 平均而言,應用程序大小的減少為5-15%(由于標題大小,char []大小減少了約35-45%)
- 它的實現(xiàn)方式是,如果String中的所有字符僅使用1個字節(jié)(較高的字節(jié)為0),則將使用byte []而不是char [](IS0-8859-1 / Latin1編碼)。 會有一個再見指示使用哪種編碼。
- 未使用UTF8,因為它支持可變長度的字符,因此對于隨機訪問不起作用。
- 字符串上的private final byte coder指示編碼。 請注意,將來有空間支持更多編碼。
- 對于所有64位JVM,由于8字節(jié)對象對齊需要'死'空間,因此不需要額外的字段來存儲額外的字段。
- 在線提供400個JMH基準測試,吞吐量不會受到影響。
- 原因是String高度優(yōu)化,因為僅String就有55種特定的JVM功能。
- 使用行業(yè)基準SPECjbb2015進行的延遲測試也得到了改進,并且在SPECjbb2005上進行了回歸測試
- 可以使用-XX:+ CompactStrings啟用和禁用該功能,但是默認情況下將啟用它。
翻譯自: https://www.javacodegeeks.com/2016/02/learn-jdk9-compact-strings-video-review-charlie-hunt.html
總結
以上是生活随笔為你收集整理的了解有关JDK9紧凑弦乐的信息(视频回顾Charlie Hunt)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农村商业银行是什么银行?
- 下一篇: 支付宝被投诉里面的钱什么时候能用?