<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Profiler on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/profiler/</link><description>Recent content in Profiler on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 17 Feb 2026 18:33:34 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/profiler/index.xml" rel="self" type="application/rss+xml"/><item><title>Runtime Code Analysis in the Age of Vibe Coding</title><link>https://foojayio.github.io/website/today/runtime-code-analysis-in-the-age-of-vibe-coding/</link><pubDate>Tue, 17 Feb 2026 14:00:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/runtime-code-analysis-in-the-age-of-vibe-coding/</guid><description>&lt;p&gt;In the era of &lt;strong&gt;vibe coding&lt;/strong&gt;&amp;mdash;where large amounts of code are introduced or refactored in short bursts, often with the help of LLMs&amp;mdash;you need immediate feedback on how new logic actually executes. Not comprehensive analysis. Not nanosecond-precise timing. Just a quick confirmation that your loops aren&amp;rsquo;t spinning 10,000x more than they should.&lt;/p&gt;
&lt;p&gt;However, traditional profilers can feel like overkill for quick validation. In addition, they present results at method/stack granularity and require context-switching to interpret. They also introduce overhead, ranging from negligible (e.g., JFR/sampling) to noticeable (call tracing/instrumentation). As a result, they are less convenient as always-on feedback during rapid iteration.&lt;/p&gt;</description></item><item><title>Unikernel: Profiling and Troubleshooting JVM on Nanos Unikernel</title><link>https://foojayio.github.io/website/today/unikernel-profiling-and-troubleshooting-jvm-on-nanos-unikernel/</link><pubDate>Wed, 11 Feb 2026 13:50:41 +0000</pubDate><guid>https://foojayio.github.io/website/today/unikernel-profiling-and-troubleshooting-jvm-on-nanos-unikernel/</guid><description>&lt;h3 id="h3-0-profiling-a-java-application-running-inside-an-unikernel-with-jprofiler"&gt;Profiling a Java Application Running Inside an Unikernel with JProfiler&lt;/h3&gt;
&lt;p&gt;Unikernels are often associated with minimalism and tight resource control.&lt;/p&gt;
&lt;p&gt;But can we profile a Java application running inside a unikernel using a standard JVM profiler?&lt;/p&gt;
&lt;p&gt;The answer is yes.&lt;/p&gt;
&lt;p&gt;In this guide, we will walk step by step through profiling a Quarkus&lt;/p&gt;
&lt;p&gt;application running inside a Nanos unikernel using &lt;strong&gt;JProfiler&lt;/strong&gt; and&lt;br&gt;
&lt;strong&gt;IBM Semeru JRE 25 (OpenJ9)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;No special hacks. Just standard JVM tooling.&lt;/p&gt;</description></item><item><title>The Art of Performance Tuning: Why Saving 30% in the Cloud Means Nothing if Your Code Wastes 1000× More</title><link>https://foojayio.github.io/website/today/the-art-of-performance-tuning-why-saving-30-in-the-cloud-means-nothing-if-your-code-wastes-1000x-more/</link><pubDate>Tue, 25 Nov 2025 06:46:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/the-art-of-performance-tuning-why-saving-30-in-the-cloud-means-nothing-if-your-code-wastes-1000x-more/</guid><description>&lt;h2 id="h2-0-the-hidden-cost-of-good-enough-code"&gt;The Hidden Cost of &amp;ldquo;Good Enough&amp;rdquo; Code&lt;/h2&gt;
&lt;p&gt;A few weeks ago, Kirk Pepperdine published a fascinating performance challenge &amp;mdash; a small Java code snippet that appeared trivial but produced puzzling runtime behavior.&lt;/p&gt;
&lt;p&gt;He invited readers to take a shot at solving it. If you haven&amp;rsquo;t seen it yet, stop here for a moment and try it yourself &amp;mdash; and when you&amp;rsquo;re done, check his Kirk&amp;rsquo;s official solution&lt;/p&gt;
&lt;p&gt;When I saw it, I thought it would be a fun exercise to revisit some fundamentals &amp;mdash; but the deeper I went, the more I realized it wasn&amp;rsquo;t just about performance. It was about how we think.&lt;/p&gt;</description></item><item><title>Profile IntelliJ IDEA with its own profiler</title><link>https://foojayio.github.io/website/today/profile-intellij-idea-with-its-own-profiler/</link><pubDate>Wed, 16 Oct 2024 15:49:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/profile-intellij-idea-with-its-own-profiler/</guid><description>&lt;p&gt;Other languages: &lt;a href="https://flounder.dev/es/posts/profile-idea-with-idea/" target="_blank" rel="noopener noreferrer"&gt;Español&lt;/a&gt;
 &lt;a href="https://flounder.dev/ko/posts/profile-idea-with-idea/" target="_blank" rel="noopener noreferrer"&gt;한국어&lt;/a&gt;
 &lt;a href="https://flounder.dev/pt/posts/profile-idea-with-idea/" target="_blank" rel="noopener noreferrer"&gt;Português&lt;/a&gt;
 &lt;a href="https://flounder.dev/zh/posts/profile-idea-with-idea/" target="_blank" rel="noopener noreferrer"&gt;中文&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Just like my &lt;a href="https://foojayio.github.io/website/today/debugger-godmode-hacking-a-jvm-application-with-the-debugger/"&gt;previous post&lt;/a&gt;
, this one is going to be slightly meta. Obviously, you can use IntelliJ IDEA &lt;a href="https://flounder.dev/posts/get-started-with-profiling/" target="_blank" rel="noopener noreferrer"&gt;to profile another process&lt;/a&gt;
, but did you know IntelliJ IDEA can profile itself?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This might be useful if you are writing an &lt;a href="https://plugins.jetbrains.com/docs/intellij/sdk.html" target="_blank" rel="noopener noreferrer"&gt;IntelliJ IDEA plugin&lt;/a&gt;
 and need to address issues related to your plugin&amp;rsquo;s performance.&lt;/p&gt;
&lt;p&gt;Also, regardless of whether you are a plugin author, the described case might be interesting to you because the profiling strategy that I&amp;rsquo;ll cover is not exclusive to IntelliJ IDEA &amp;ndash; you can use it to troubleshoot similar bottlenecks in other types of projects and using other tools.&lt;/p&gt;</description></item><item><title>How to profile a performance issue using Spring Boot profiling tools</title><link>https://foojayio.github.io/website/today/how-to-profile-a-performance-issue-using-spring-boot-profiling-tools/</link><pubDate>Mon, 02 Sep 2024 09:56:13 +0000</pubDate><guid>https://foojayio.github.io/website/today/how-to-profile-a-performance-issue-using-spring-boot-profiling-tools/</guid><description>&lt;p&gt;&lt;strong&gt;In today&amp;rsquo;s fast-paced development environment, ensuring the performance and reliability of your services is critical. Imagine you are part of a team responsible for several services essential to both internal teams and external customers. These services are the backbone of various business operations, and any downtime or performance degradation can have significant repercussions.&lt;/strong&gt;{#c79c}&lt;/p&gt;
&lt;p&gt;Now, picture this scenario: your team has not yet implemented a robust monitoring and observability system. One day, you start receiving emails and messages from frustrated clients reporting that your service is down. Panic sets in as your team tries to figure out what went wrong. Without proper monitoring tools, finding the root cause of issues in production is challenging. Persistent downtime increases pressure, affecting business operations and customer satisfaction.{#acf3}&lt;/p&gt;</description></item><item><title>9 Best Java Profilers to Use in 2024</title><link>https://foojayio.github.io/website/today/9-best-java-profilers-to-use-in-2024/</link><pubDate>Wed, 10 Jul 2024 13:46:51 +0000</pubDate><guid>https://foojayio.github.io/website/today/9-best-java-profilers-to-use-in-2024/</guid><description>&lt;p&gt;&lt;strong&gt;In this article, I will share why my team decided to start a Java profiler, the list of profilers we found that are suited for profiling Java apps, and how to analyze the data from the profiler to draw conclusions faster.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Recently, one of our team members was working on a third-party Linux application, and started encountering instances where he figured that one of his applications probably had memory leaks, as he kept getting an out-of-memory exception.&lt;/p&gt;</description></item></channel></rss>