🌘 Valhalla 的 LocalDate 扁平化疑雲:原始碼建置與早期預覽版差異解析
➤ 從 Valhalla 的 LocalDate 扁平化困境,看 Java 序列化的潛規則
✤ https://horstmann.com/unblog/2025-11-08/index.html
本文探討了 Java Valhalla 專案中 LocalDate 物件扁平化(flattening)的效能問題。作者原以為 Valhalla 能將 LocalDate 陣列扁平化以提升效能,但在自行編譯 Valhalla JDK 時卻未見此優化效果。透過深入分析,作者發現差異源於早期預覽版對 LocalDate 的欄位表示方式進行了優化(將 month 和 day 的 short 改為 byte),使其能納入 Nullness 標記位元並符合扁平化條件。然而,此優化隨後被撤銷,原因竟是 LocalDate 的序列化機制。 LocalDate 的 writeReplace 機制雖能區隔內部表示與外部線路格式,但在序列化 Lo
#Java #Valhalla #LocalDate #效能優化 #序列化
➤ 從 Valhalla 的 LocalDate 扁平化困境,看 Java 序列化的潛規則
✤ https://horstmann.com/unblog/2025-11-08/index.html
本文探討了 Java Valhalla 專案中 LocalDate 物件扁平化(flattening)的效能問題。作者原以為 Valhalla 能將 LocalDate 陣列扁平化以提升效能,但在自行編譯 Valhalla JDK 時卻未見此優化效果。透過深入分析,作者發現差異源於早期預覽版對 LocalDate 的欄位表示方式進行了優化(將 month 和 day 的 short 改為 byte),使其能納入 Nullness 標記位元並符合扁平化條件。然而,此優化隨後被撤銷,原因竟是 LocalDate 的序列化機制。 LocalDate 的 writeReplace 機制雖能區隔內部表示與外部線路格式,但在序列化 Lo
#Java #Valhalla #LocalDate #效能優化 #序列化

