diff --git a/docs/glossaryterm.md b/docs/glossaryterm.md new file mode 100644 index 0000000000..292861a901 --- /dev/null +++ b/docs/glossaryterm.md @@ -0,0 +1,66 @@ + + + +# Glossary + +| Term | Definition | +|---------------|------------| +| **Agent** | A component loaded into a VM to perform tasks like monitoring, profiling, or diagnostics. | +| **AgentLoadException** | Exception thrown when an agent fails to load through the Attach API. | +| **Allocator** | Manages pools of free memory and allocates storage in the Java heap for objects that are requested by applications, libraries, or the VM. | +| **Ahead-Of-Time (AOT) Compiler** | Dynamically compiles Java methods into native code at runtime and stores them in the shared classes cache. This compilation and storage improves startup performance for subsequent runs by avoiding interpretation. | +| **Area-based Heap** | Divides the heap into nursery and tenure areas to optimize garbage collection based on object lifespan. | +| **Arraylet** | A structure for storing large arrays in fragmented heaps, consisting of a spine and leaves. Helps avoid contiguous memory allocation. | +| **Attach API** | Java API that allows a running VM to be connected to by another VM to load agents for monitoring or diagnostics. | +| **Class Data Sharing (CDS)** | VM feature that shares class metadata between VM instances to reduce startup time and memory usage. | +| **Classpath (`-classpath`)** | Specifies the search path for application classes and resources. | +| **Compressed References** | A memory optimization technique that stores object references in 32-bit format on 64-bit systems to reduce memory footprint. | +| **CRIU (Checkpoint/Restore In Userspace)** | Linux tool for checkpointing and restoring processes that run by using OpenJ9. | +| **CUDA (Compute Unified Device Architecture)** | NVIDIA's parallel computing platform that allows Java apps to offload tasks to GPUs. | +| **CUDA4J** | A technology or API within OpenJ9 that facilitates GPU acceleration for Java applications by using NVIDIA's CUDA platform. It allows Java programs to offload compute-intensive tasks to GPUs. | +| **Dynamic Agent Loading** | Loading agents into a running VM without restarting it, controlled through the `-XX:+EnableDynamicAgentLoading` option. | +| **Garbage Collector (GC)** | Reclaims memory by removing objects that are no longer referenced. Different GC policies determine its behavior. | +| **GC Policy** | A strategy used by the garbage collector to manage memory. Examples include `gencon`, `optavgpause`, and `balanced`. | +| **Health Center** | IBM tool for monitoring Java applications using the Attach API. | +| **Heap Configuration** | Defines the structure of the Java heap, which can be flat or divided into areas or regions. | +| **Heap Expansion and Contraction** | The VM grows or shrinks the heap based on memory needs and GC activity, which is controlled by options, such as `-Xminf` and `-Xmaxf`. | +| **Heap Lock** | A synchronization mechanism to prevent concurrent threads from accessing the same memory area during allocation. | +| **Heap Sizing** | Refers to setting initial and maximum heap sizes by using options, such as `-Xms` and `-Xmx`, with finer tuning for specific areas. | +| **Just-In-Time (JIT) Compiler** | Compiler that converts bytecode to native code at runtime for performance. | +| **LOA (Large Object Area)** | A heap subdivision for large object allocation. Its size is dynamically adjusted to avoid allocation failures. | +| **OpenJ9** | Eclipse Foundation's open source VM optimized for performance and memory efficiency. | +| **OpenSSL** | The cryptographic library that is used in OpenJ9 builds for secure communication and acceleration. | +| **OutOfMemoryError** | An exception thrown when the VM cannot allocate memory due to insufficient heap space. | +| **Portable Operating System Interface (POSIX)** | Standards specified by the IEEE Computer Society to maintain compatibility between operating systems. Enables the portability of software across different UNIX-like operating systems and other POSIX-compliant systems. | +| **POSIX File Permissions** | UNIX file access control standard used to secure Attach API directories. | +| **Region-based Heap** | Divides the heap into many equal-sized regions to manage object generations. Used by `balanced` and `metronome` GC policies. | +| **Shared Classes Cache** | A storage area used to hold AOT-compiled methods and other class data to enable faster application startup. | +| **Small Object Allocation** | The process of allocating memory for objects that are typically smaller than 64 KB in a designated part of the heap called the Small Object Area (SOA). | +| **SOA (Small Object Area)** | A heap subdivision for small object allocation. Allocation failures here trigger garbage collection. | +| **Sticky Bit** | UNIX permission setting that restricts deletion or renaming of files in a directory to the file owner or root. | +| **System Temporary Directory** | Directory that is used by Attach API to store temporary files for communication between VMs. | +| **Thread Local Heap (TLH)** | A thread-specific memory cache that allows memory allocation without acquiring the heap lock, thus improving performance. | + + + diff --git a/mkdocs.yml b/mkdocs.yml index 1ec8a92e6e..4262b02724 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -500,4 +500,6 @@ nav: - "Java 21 API" : api-jdk21.md - "Java 25 API" : api-jdk25.md + - "Glossary" : glossaryterm.md + - "Legal" : legal.md