Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions docs/glossaryterm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<!--
* Copyright (c) 2017, 2025 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] https://openjdk.org/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
-->
<!--Some sections generated by Microsoft Copilot -->

# 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. |


<!-- ==== END OF TOPIC ==== glossaryterm.md ==== -->
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -500,4 +500,6 @@ nav:
- "Java 21 API" : api-jdk21.md
- "Java 25 API" : api-jdk25.md

- "Glossary" : glossaryterm.md

- "Legal" : legal.md