Breaking the LLM Black Box: Custom Categorization in JProfiler
Modern agentic applications often perform a wide range of logical tasks through a single interface. While these operations have vastly different performance and cost profiles, they appear as an undifferentiated call tree in traditional profilers.
By default, JProfiler groups these requests by model name, which provides a high-level overview but lacks the granularity needed to distinguish between different functional workloads.
This screencast shows how to move beyond this predefined perspective with scripts that define your own categorization rules based on internal metadata, instruction structure, or application state.
Profiling AI: LangChain4j and Spring AI
Agentic applications introduce unique profiling challenges. Beyond standard CPU usage, performance and costs are determined by the complex structure of prompts, RAG retrievers, and tool calls that remain hidden behind framework abstractions.
To avoid vendor lock-in, most developers use frameworks like LangChain4j or Spring AI. JProfiler’s AI probe provides deep visibility into these frameworks.
This screencast walks through profiling a LangChain4j customer support agent, showing how the AI probe visualizes prompt compositions, isolates token-heavy outliers, and projects resource costs directly onto the recorded call tree.
JProfiler 16: Profiling Agentic Java Applications
Why AI Needs Profiling
Traditional profiling focuses on the JVM's internal execution, like method durations, memory allocation, and thread synchronization issues. One of JProfiler's main innovations of the past is grounded in its probes: Measurements of higher-level systems, like HTTP, JDBC, and RPC calls. With LLM frameworks like LangChain4j and Spring AI, a new performance challenge has emerged. LLM interactions introduce highly non-deterministic latency and substantial resource costs that standard CPU profiling cannot put into context. JProfiler is in a unique position to bridge this gap by treating AI interactions as a data source for a new probe.
Migrating to install4j 12
In most cases, migrating to install4j 12 usually just involves opening and saving your project with the install4j 12 IDE. Nevertheless, there are some considerations with respect to backward compatibility and some behavioral changes.
With Temurin 24.0.2, Adoptium JDKs can again be modularized by install4j
This year we had some dramatic moments starting in April with the release of Temurin 24.0.0 from Adoptium, our default JDK bundle provider. In this blog post we celebrate the happy conclusion of this incident.
The power of async tracking in JVM profiling
Async operations can speed up applications and improve responsiveness, but they also introduce complexity. Especially in the context of profiling, understanding what really happened and why can be surprisingly tricky. This post shows how JProfiler's async tracking feature helps fix hard performance problems in your application.
Website refresh: Visual updates, dark mode, and semantic search for docs
We have just rolled out significant changes to our website. They include many visual updates and important infrastructure updates that speed up loading times in many locations across the globe.
In addition, there are three functional changes that we would like to highlight:
All our artifacts are now published on Maven Central
We have migrated all of our public Maven artifacts to Maven Central. Previously, these artifacts were available from our own Maven repository, which will remain online for older releases. New releases will be published exclusively on Maven Central.
JEP 493 follow-up: install4j 11.0.4 is ready for separate JMOD bundles in Eclipse Temurin 24.0.2
Two months ago, I wrote about how JEP 493 threatened cross-platform JRE bundle creation by allowing JDK vendors to omit JMOD files from their distributions. Without JMOD files, tools like install4j cannot build cross-platform runtime images. This had the potential to seriously disrupt functionality for our users.
JProfiler tips roundup May 2025
I regularly share practical advice and insights on JProfiler and install4j on social media, covering features, shortcuts, and use cases. This blog post collects everything shared in May 2025. Each section rewrites the original thread in plain text.