Skip to content

Commit 67e3322

Browse files
Glossary items
Part 1 - 07 Oct 2025 OpenJ9 Glossary terms Co-authored by Copilot Signed-off-by: Sreekala Gopakumar [email protected]
1 parent 836fa6d commit 67e3322

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

docs/glossaryterm.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<!--
2+
* Copyright (c) 2017, 2025 IBM Corp. and others
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which accompanies this distribution and is available at
7+
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
8+
* License, Version 2.0 which accompanies this distribution and
9+
* is available at https://www.apache.org/licenses/LICENSE-2.0.
10+
*
11+
* This Source Code may also be made available under the
12+
* following Secondary Licenses when the conditions for such
13+
* availability set forth in the Eclipse Public License, v. 2.0
14+
* are satisfied: GNU General Public License, version 2 with
15+
* the GNU Classpath Exception [1] and GNU General Public
16+
* License, version 2 with the OpenJDK Assembly Exception [2].
17+
*
18+
* [1] https://www.gnu.org/software/classpath/license.html
19+
* [2] https://openjdk.org/legal/assembly-exception.html
20+
*
21+
* 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
22+
-->
23+
<!--Some sections generated by Copilot -->
24+
25+
# Glossary Terms and Definitions
26+
27+
| Glossary Term | Definition |
28+
|---------------|------------|
29+
| **Agent** | A component loaded into a VM to perform tasks like monitoring, profiling, or diagnostics. |
30+
| **AgentLoadException** | Exception thrown when an agent fails to load through the Attach API. |
31+
| **Allocator** | Manages pools of free memory and allocates storage in the Java heap for objects that are requested by applications, libraries, or the VM. |
32+
| **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. |
33+
| **Area-based Heap** | Divides the heap into nursery and tenure areas to optimize garbage collection based on object lifespan. |
34+
| **Arraylet** | A structure for storing large arrays in fragmented heaps, consisting of a spine and leaves. Helps avoid contiguous memory allocation. |
35+
| **Attach API** | Java API that allows a running VM to be connected to by another VM to load agents for monitoring or diagnostics. |
36+
| **Class Data Sharing (CDS)** | VM feature that shares class metadata between VM instances to reduce startup time and memory usage. |
37+
| **Classpath (`-classpath`)** | Specifies the search path for application classes and resources. |
38+
| **Compressed References** | A memory optimization technique that stores object references in 32-bit format on 64-bit systems to reduce memory footprint. |
39+
| **Condition Exception Handling** | Refers to the mechanisms provided by OpenJ9 for managing exceptions and error conditions during Java application execution. These mechanisms include APIs and tools for diagnosing and responding to runtime issues. |
40+
| **CRIU (Checkpoint/Restore In Userspace)** | Linux tool for checkpointing and restoring processes, which are used in OpenJ9. |
41+
| **CUDA (Compute Unified Device Architecture)** | NVIDIA's parallel computing platform that allows Java apps to offload tasks to GPUs. |
42+
| **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. |
43+
| **Dynamic Agent Loading** | Loading agents into a running VM without restarting it, controlled through the `-XX:+EnableDynamicAgentLoading` option. |
44+
| **Garbage Collector (GC)** | Reclaims memory by removing objects that are no longer referenced. Different GC policies determine its behavior. |
45+
| **GC Policy** | A strategy used by the garbage collector to manage memory. Examples include `gencon`, `optavgpause`, and `balanced`. |
46+
| **Health Center** | IBM tool for monitoring Java applications using the Attach API. |
47+
| **Heap Configuration** | Defines the structure of the Java heap, which can be flat or divided into areas or regions. |
48+
| **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`. |
49+
| **Heap Lock** | A synchronization mechanism to prevent concurrent threads from accessing the same memory area during allocation. |
50+
| **Heap Sizing** | Refers to setting initial and maximum heap sizes by using options, such as `-Xms` and `-Xmx`, with finer tuning for specific areas. |
51+
| **Just-In-Time (JIT) Compiler** | Compiler that converts bytecode to native code at runtime for performance. |
52+
| **LOA (Large Object Area)** | A heap subdivision for large object allocation. Its size is dynamically adjusted to avoid allocation failures. |
53+
| **OpenJ9** | Eclipse Foundation's open source VM optimized for performance and memory efficiency. |
54+
| **OpenSSL** | The cryptographic library that is used in OpenJ9 builds for secure communication and acceleration. |
55+
| **OutOfMemoryError** | An exception thrown when the VM cannot allocate memory due to insufficient heap space. |
56+
| **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. |
57+
| **POSIX File Permissions** | UNIX file access control standard used to secure Attach API directories. |
58+
| **Region-based Heap** | Divides the heap into many equal-sized regions to manage object generations. Used by `balanced` and `metronome` GC policies. |
59+
| **Shared Classes Cache** | A storage area used to hold AOT-compiled methods and other class data to enable faster application startup. |
60+
| **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). |
61+
| **SOA (Small Object Area)** | A heap subdivision for small object allocation. Allocation failures here trigger garbage collection. |
62+
| **Sticky Bit** | UNIX permission setting that restricts deletion or renaming of files in a directory to the file owner or root. |
63+
| **System Temporary Directory** | Directory that is used by Attach API to store temporary files for communication between VMs. |
64+
| **Thread Local Heap (TLH)** | A thread-specific memory cache that allows memory allocation without acquiring the heap lock, thus improving performance. |
65+
66+
67+
<!-- ==== END OF TOPIC ==== glossary.md ==== -->

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,4 +500,6 @@ nav:
500500
- "Java 21 API" : api-jdk21.md
501501
- "Java 25 API" : api-jdk25.md
502502

503+
- "Glossary" : glossaryterm.md
504+
503505
- "Legal" : legal.md

0 commit comments

Comments
 (0)