<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Performance on Neat Guy Coding</title><link>https://neatguycoding.com/categories/performance/</link><description>Recent content in Performance on Neat Guy Coding</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 NeatGuyCoding</copyright><lastBuildDate>Mon, 01 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://neatguycoding.com/categories/performance/index.xml" rel="self" type="application/rss+xml"/><item><title>JDK Tough Way - 7. JFR Event Collection Principles and Evolution</title><link>https://neatguycoding.com/posts/tough-jdk-7-jfr-conf-usage/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/tough-jdk-7-jfr-conf-usage/</guid><description>A comprehensive analysis of JFR (Java Flight Recorder) configuration system, usage methods, and event collection mechanisms. Covers JFR configuration system (global configuration, recording level configuration, JFC configuration files), multiple usage methods (JVM parameters, jcmd commands, JDK API, JMX), jfr tool analysis, event type classification and configuration applicability, as well as core changes and best practices from JDK 11 to JDK 25.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/tough-jdk-7-jfr-conf-usage/featured.jpg"/></item><item><title>Why HeapDumpOnOutOfMemoryError Should Be Avoided in Production</title><link>https://neatguycoding.com/posts/java-oom/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/java-oom/</guid><description>A comprehensive guide exploring why enabling HeapDumpOnOutOfMemoryError can cause significant performance issues in production environments, which OutOfMemoryError types actually trigger heap dumps, and better alternatives like JFR for memory leak detection and automatic service restart strategies.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/java-oom/featured.jpg"/></item><item><title>PostgreSQL vs MySQL: Finding the Right Fit for Your OLTP Workloads</title><link>https://neatguycoding.com/posts/pgsql-mysql/</link><pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/pgsql-mysql/</guid><description>A comprehensive comparison of PostgreSQL and MySQL for OLTP scenarios, exploring their fundamental architectural differences in secondary index handling and MVCC implementation, with practical insights on when to choose each database.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/pgsql-mysql/featured.jpg"/></item><item><title>Can GraalVM Native Image Processes Be Detected by jps? Plus Our Production Strategy</title><link>https://neatguycoding.com/posts/graalvm-jvm/</link><pubDate>Fri, 19 Apr 2024 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/graalvm-jvm/</guid><description>Discover when GraalVM Native Image processes show up in jps and learn our battle-tested approach for choosing between GraalVM Native Image and JVM in production environments. We break down our strategy for Lambda-style tasks versus long-running microservices.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/graalvm-jvm/featured.jpg"/></item><item><title>Maximizing Request Throughput to Third-Party APIs: A Practical Testing Approach</title><link>https://neatguycoding.com/posts/http-client/</link><pubDate>Thu, 18 Apr 2024 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/http-client/</guid><description>Learn how to develop and test high-performance API clients using WebClient, TestContainers, and toxicproxy. This comprehensive guide covers asynchronous request handling, isolated testing environments, and realistic failure simulation for robust microservice development.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/http-client/featured.jpg"/></item><item><title>JDK Tough Way - 4. The Most Detailed JVM Memory Structure Analysis</title><link>https://neatguycoding.com/posts/tough-jdk-4-jvm-memory/</link><pubDate>Tue, 28 Mar 2023 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/tough-jdk-4-jvm-memory/</guid><description>A comprehensive deep-dive into JVM memory architecture covering heap memory, metaspace, thread stacks, and compressed object pointers. This technical analysis examines memory allocation processes, Native Memory Tracking, and provides practical examples using tools like jol, jhsdb, and JFR for understanding JVM memory management internals.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/tough-jdk-4-jvm-memory/featured.jpg"/></item><item><title>Tackling a Mysterious JVM Safepoint Issue: A Journey from Problem to Solution</title><link>https://neatguycoding.com/posts/log-copy-issue/</link><pubDate>Sun, 19 Jun 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/log-copy-issue/</guid><description>A deep dive into diagnosing and resolving a production JVM issue where applications would freeze during hourly log synchronization tasks. We explore safepoint analysis, JVM log output blocking, asynchronous logging implementation, and WebFlux optimization to achieve a complete solution.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/log-copy-issue/featured.jpg"/></item><item><title>Solving JVM Safepoint Delays: A Journey from EFS Integration to Async Logging</title><link>https://neatguycoding.com/posts/async-log-issue/</link><pubDate>Thu, 16 Jun 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/async-log-issue/</guid><description>An in-depth investigation into mysterious JVM safepoint delays after upgrading to Java 17 and implementing centralized log collection with AWS EFS. We discovered how file I/O blocking during log output can freeze entire JVM processes and solved it using async logging and proper WebFlux implementation.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/async-log-issue/featured.jpg"/></item><item><title>Tackling Performance Degradation in Sharded MySQL Tables: Understanding the Root Cause and Solutions</title><link>https://neatguycoding.com/posts/recreate_table/</link><pubDate>Fri, 27 May 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/recreate_table/</guid><description>A comprehensive guide to understanding why MySQL queries slow down over time in sharded environments, exploring the underlying causes of storage fragmentation and MVCC-related issues, and providing practical solutions using table rebuilding techniques with OPTIMIZE TABLE for maintaining optimal database performance.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/recreate_table/featured.jpg"/></item><item><title>JDK Tough Way - 3. Java Memory Model - A Comprehensive Guide to Concurrency and Memory Barriers</title><link>https://neatguycoding.com/posts/tough-jdk-3-jmm/</link><pubDate>Mon, 28 Mar 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/tough-jdk-3-jmm/</guid><description>A deep dive into Java Memory Model (JMM) from specification to implementation, covering memory barriers, CPU reordering, and Java 9+ VarHandle APIs. Learn about coherence, causality, consensus, and how volatile, final, and other synchronization mechanisms work under the hood with practical jcstress examples.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/tough-jdk-3-jmm/featured.jpg"/></item><item><title>The Hidden Performance Killer: Why Code Location in Logs Can Destroy Your Microservice Performance</title><link>https://neatguycoding.com/posts/log-with-position/</link><pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/log-with-position/</guid><description>Discover how enabling code location in logs can cause severe CPU performance issues in microservices, especially reactive applications. This deep-dive analysis reveals the hidden costs of stack walking in Log4j2 and provides actionable solutions for high-throughput systems.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/log-with-position/featured.jpg"/></item><item><title>MySQL Optimizer Statistics: Why Your Queries Choose the Wrong Index</title><link>https://neatguycoding.com/posts/sql-index/</link><pubDate>Thu, 24 Feb 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/sql-index/</guid><description>A deep dive into MySQL&amp;rsquo;s InnoDB optimizer statistics and how sampling inaccuracies can lead to poor index selection, causing dramatic performance differences between similar queries. Learn practical solutions to prevent slow SQL queries caused by optimizer misjudgments.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/sql-index/featured.jpg"/></item><item><title>Configuring Spring Data Redis with Lettuce for Effective Pipeline Operations</title><link>https://neatguycoding.com/posts/spring-data-redis-pipeline/</link><pubDate>Wed, 05 Jan 2022 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/spring-data-redis-pipeline/</guid><description>A comprehensive guide on how to properly configure Spring Data Redis with Lettuce to enable pipeline functionality. Learn about connection sharing, AutoFlushCommands, and PipeliningFlushPolicy configurations to optimize your Redis batch operations and reduce network round-trip time.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/spring-data-redis-pipeline/featured.jpg"/></item><item><title>Spring Data Redis Connection Leak Mystery: When Your Microservice Goes Rogue</title><link>https://neatguycoding.com/posts/spring-data-redis-connection-leak/</link><pubDate>Thu, 14 Oct 2021 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/spring-data-redis-connection-leak/</guid><description>A production incident investigation revealing how Spring Data Redis + Lettuce can leak connections when mixing SessionCallback and executeWithStickyConnection operations. Deep dive into connection management mechanisms, JFR analysis techniques, and practical solutions to prevent your Redis connection pool from becoming a black hole.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/spring-data-redis-connection-leak/featured.jpg"/></item><item><title>Gateway Avalanche Crisis: How Synchronous Redis Calls Nearly Brought Down Our System</title><link>https://neatguycoding.com/posts/spring-cloud-gateway-avalanche/</link><pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/spring-cloud-gateway-avalanche/</guid><description>A deep dive into a production incident where our Spring Cloud Gateway experienced cascading failures due to blocking Redis operations. Learn how synchronous API calls in reactive environments can cause thread starvation, leading to health check failures and system-wide avalanches, plus the complete solution using async patterns.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/spring-cloud-gateway-avalanche/featured.jpg"/></item><item><title>A Hidden Production Issue Discovered Through SQL Optimization</title><link>https://neatguycoding.com/posts/big-table-index-invalid/</link><pubDate>Sat, 07 Aug 2021 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/big-table-index-invalid/</guid><description>When our operations team brought us a complex SQL query that was taking forever to execute, we thought it was just a performance issue. Little did we know, this investigation would uncover a deeply hidden character encoding mismatch that had been silently causing full table scans in our production database.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/big-table-index-invalid/featured.jpg"/></item><item><title>Troubleshooting a SSL Performance Bottleneck Using JFR</title><link>https://neatguycoding.com/posts/jfr-ssl/</link><pubDate>Sat, 27 Mar 2021 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/jfr-ssl/</guid><description>In-depth analysis of a microservice performance issue with CPU spikes and database connection anomalies. Through JFR profiling, we discovered the root cause was Java SecureRandom blocking on /dev/random and provide solutions using /dev/urandom.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/jfr-ssl/featured.jpg"/></item><item><title>JDK Tough Way - 1. A Comprehensive Guide to Thread Local Allocation Buffers</title><link>https://neatguycoding.com/posts/tough-jdk-1-tlab/</link><pubDate>Wed, 03 Feb 2021 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/tough-jdk-1-tlab/</guid><description>A deep dive into JVM&amp;rsquo;s Thread Local Allocation Buffer (TLAB) mechanism, covering design principles, implementation details, performance optimization, and source code analysis. Learn how TLAB improves memory allocation efficiency in multi-threaded environments and master TLAB tuning techniques.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/tough-jdk-1-tlab/featured.jpg"/></item><item><title>OpenJDK 11 JVM Logging: A Comprehensive Guide to the New Unified Configuration</title><link>https://neatguycoding.com/posts/jvm-log/</link><pubDate>Thu, 06 Feb 2020 00:00:00 +0000</pubDate><guid>https://neatguycoding.com/posts/jvm-log/</guid><description>Discover how OpenJDK 11 revolutionized JVM logging with its unified configuration system. Learn about essential log tags for GC analysis, class loading, and runtime compilation, plus master dynamic log configuration using jcmd for real-time performance tuning.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://neatguycoding.com/posts/jvm-log/featured.jpg"/></item></channel></rss>