- 適用於 JDK 23 的 GraalVM (最新) (GraalVM for JDK 23 (Latest))
- 適用於 JDK 24 的 GraalVM (搶先體驗) (GraalVM for JDK 24 (Early Access))
- 適用於 JDK 21 的 GraalVM (GraalVM for JDK 21)
- 適用於 JDK 17 的 GraalVM (GraalVM for JDK 17)
- 封存檔 (Archives)
- 開發版本 (Dev Build)
- Truffle 語言實作框架 (Truffle Language Implementation Framework)
- Truffle 分支檢測 (Truffle Branches Instrumentation)
- 動態物件模型 (Dynamic Object Model)
- 靜態物件模型 (Static Object Model)
- 針對直譯器程式碼的主機最佳化 (Host Optimization for Interpreter Code)
- Truffle 函式內聯方法 (Truffle Approach to Function Inlining)
- 剖析 Truffle 直譯器 (Profiling Truffle Interpreters)
- Truffle Interop 2.0
- 語言實作 (Language Implementations)
- 使用 Truffle 實作新語言 (Implementing a New Language with Truffle)
- Truffle 語言和工具遷移至 Java 模組 (Truffle Languages and Instruments Migration to Java Modules)
- Truffle 原生函式介面 (Truffle Native Function Interface)
- 最佳化 Truffle 直譯器 (Optimizing Truffle Interpreters)
- 選項 (Options)
- 堆疊上替換 (On-Stack Replacement)
- Truffle 字串指南 (Truffle Strings Guide)
- 特化長條圖 (Specialization Histogram)
- 測試 DSL 特化 (Testing DSL Specializations)
- 基於 Polyglot API 的 TCK (Polyglot API Based TCK)
- Truffle 編譯佇列方法 (Truffle Approach to the Compilation Queue)
- Truffle 程式庫指南 (Truffle Library Guide)
- Truffle AOT 概觀 (Truffle AOT Overview)
- Truffle AOT 編譯 (Truffle AOT Compilation)
- 輔助引擎快取 (Auxiliary Engine Caching)
- Truffle 語言安全點教學 (Truffle Language Safepoint Tutorial)
- 單態化 (Monomorphization)
- 分割演算法 (Splitting Algorithm)
- 單態化使用案例 (Monomorphization Use Cases)
- 向執行時間回報多型特化 (Reporting Polymorphic Specializations to Runtime)
- 首頁 (Home)
- 最新 (Latest)
- Graalvm 作為平台 (Graalvm As A Platform)
- 語言實作框架 (Language Implementation Framework)
- 分割 (Splitting)
單態化 (Monomorphization)
Truffle 具有自動化的單態化方法 (也稱為「分割」)。如需更多關於單態化優點的資訊,請繼續閱讀單態化使用案例。(Truffle has an automatic approach to monomorphization (also known as “splitting”). For more information about the benefits of monomorphization, continue reading to Monomorphization Use Cases.)
它由 Splitting
引擎選項控制,預設為開啟。在您的命令列中加入 --engine.Splitting=false
將停用它。(It is controlled by the Splitting
engine option and is on by default. Adding --engine.Splitting=false
to your command line will disable it.)
此啟發式方法依賴語言實作提供的資訊來引導決策。若要深入瞭解如何在您的語言實作中使用新方法,請參考回報多型指南。(The heuristic relies on information from the language implementation to guide the decisions. To find out more about how to use the new approach in your language implementation, refer to the Reporting Polymorphism guide.)
若要深入瞭解新方法如何運作,請參閱分割指南。(For more details on how the new approach works, see the Splitting guide.)