Is today’s microservice more bloated than yesterday’s monolith?

The author reflects on their journey from monolithic to microservice architecture, highlighting a large financial institution's transition from a CORBA/C++ platform to SOAP/Java. They express concerns about modern microservices consuming significantly more memory and facing degraded response times compared to older monolithic systems, while acknowledging the benefits of microservices.

“I don’t have to worry about Garbage collection” – Is it true?

Garbage Collection (GC) is automatic in modern platforms but requires attention due to its impact on customer experience and costs. GC pauses can disrupt transactions, leading to user dissatisfaction and significant financial losses. Optimizing GC performance enhances application responsiveness and reveals crucial metrics for predictive monitoring and effective capacity planning, offering substantial improvements without code changes.

How many millions of dollars enterprises waste due to Garbage collection?

Enterprises are unknowingly wasting millions of dollars on garbage collection due to automatic memory management, causing application pauses that hinder customer transactions. Even with a GC throughput of 98%, applications still spend approximately 30 minutes daily in garbage collection activities. Tuning garbage collection and optimizing object creation can mitigate these losses.

Video Blog: 7 JVM Arguments of Highly effective applications

The content discusses the complexity of JVM arguments related to Garbage collection and memory, highlighting seven key arguments that enhance the performance of Java, Scala, and Jython applications. Four videos cover topics like maximum heap size, thread stack size, garbage collection methods, and timeout settings, along with OutOfMemoryError handling.

How to Find Your Java Application Process ID (PID)?

This post explains how to quickly find the Java application process ID on Linux and Windows. For Linux, the command "ps -ef | grep java" displays running Java processes and their IDs. On Windows, the "jps" tool shows running Java processes, albeit with limited argument visibility compared to the Linux method.

Shallow Heap vs Retained Heap

Eclipse MAT is a crucial tool for analyzing heap dumps, particularly useful in debugging OutOfMemoryError. It distinguishes between two object sizes: Shallow Heap and Retained Heap. A video is available that explains their differences and calculation methods. Watch it for more insights on using Eclipse MAT effectively.

How Java program executed? – Heap, threads, stack, GC

The content discusses the intricacies of Java program execution, including object creation regions, garbage collection eligibility, thread storage, and the distinctions between Stack and Heap memory. It encourages viewers to watch a video for a deeper understanding of these concepts.

Large or small heap size?

The video discusses strategies for running applications with either large or small heap sizes. It explores the implications of each approach in terms of performance and cost. Viewers can learn which heap size strategy might be optimal for their specific application needs.

Java threads – may not be memory efficient?

The study reveals that Java threads, regardless of their active or dormant states, consume equivalent memory upon creation. Testing with two programs demonstrated that both empty and full stack frame threads allocated the same memory. Developers are advised to minimize thread creation and optimize stack sizes to reduce memory waste.

Best practices: Java memory arguments for Containers

When migrating Java applications to containers, configuring the Java heap size is essential. The article discusses three JVM options: -XX:MaxRAMFraction, -XX:MaxRAMPercentage, and -Xmx, outlining their usage, limitations, and best practices. The author suggests preferring -Xmx for precise heap configurations and ensuring adequate container memory allocation.