Sažetak
Modern Java applications are increasingly deployed in virtualized environments such as containers and cloud platforms, where computational resources, including system memory, are explicitly provisioned, constrained, and invoiced. The introduction of Java Virtual Threads enables significantly higher levels of concurrency compared to traditional platform threads, making memory-related scalability constraints more pronounced. Compared to traditional platform threads, which are commonly constrained by CPU availability, Virtual-Thread-based execution shifts a greater share of scalability pressure toward memory usage, making memory-related constraints and Java Virtual Machine (JVM) heap configuration particularly important.This work explores the scalability of concurrent Java applications implemented with Virtual Threads under fixed JVM heap-size constraints. An experimental approach is employed in which concurrency is gradually increased across multiple heap configurations while evaluating performance and stability. The analysis considers throughput, latency, memory utilization, CPU utilization, and failure behavior to characterize scalability limits. Selected experiments are conducted with varying system memory capacities to assess how behavior changes beyond the configured heap.By examining the interaction between heap configuration, system memory constraints, and high-concurrency Virtual-Thread-based execution, this paper provides practical insights into memory-related scalability behavior, supporting more informed memory provisioning and configuration decisions for concurrent Java applications.
Ključne riječi
Java Virtual Threads JVM Heap Memory Constraints Scalability Concurrent Applications