Blog

Product news, updates, and insights from ej-technologies.

Read with RSS. Subscribe by email. Follow on .

JProfiler Makes Heap Dumps Useful to AI Agents

2026-11-04
Posted by Ingo Kegel

JProfiler 16.3 makes all major JProfiler subsystems available to AI agents through its MCP server. One of the most useful additions is heap dump analysis. Agents can now inspect the objects in a heap, follow their references and find out why they were not garbage collected.

Without runtime data, an AI agent cannot see which objects are alive or what keeps them reachable. JProfiler closes that gap, so the agent can start with actual evidence and use it to find the relevant source code.

Making the JProfiler MCP Server Robust for Weaker Models

2026-07-28
Posted by Ingo Kegel

Using flagship models is not ideal for all coding tasks. They are slow and they cost a lot. So many tasks, especially chores, are more suitable for lower-tier models that are more nimble and do the task at a fraction of the cost. However, the tool-calling behavior of these models can be more erratic than what the top models are capable of.

In JProfiler 16.1 we added an MCP server to let AI coding agents profile Java applications and analyze the results. This has been met with a lot of positive feedback from our customers, so it is an area that we intend to expand on in the upcoming releases.

For the initial release, most of our testing had been done mainly with Claude Code. For JProfiler 16.2, we have made the MCP server a lot more robust for other AI models. Read on for what the other models did wrong and how we made the profiling workflow robust against their shortcomings.

How I Doubled jclasslib's Performance with JProfiler MCP

2026-04-24
Posted by Ingo Kegel

Recently, I improved the performance of jclasslib, my open-source JVM bytecode viewer, by using Codex and a profiling agent. Not because I had a particular pain point, but because I was trying out our MCP server that shipped with JProfiler 16.1. Read on for how the agent more than doubled class file reading, and why profiling no longer needs a reason to start.

JProfiler 16.1: AI Agents Can Now Profile Your Java Applications

2026-04-09
Posted by Ingo Kegel

Since JProfiler 1.0, profiling has been something a developer does with a GUI. You start a session, navigate views, and interpret data. In practice, this means that performance analysis only happens when a problem is serious enough to justify the context switch, and many issues ship to production without ever being profiled.

With JProfiler 16.1, we are changing how profiling works: AI coding agents can now profile your Java applications, analyze the results, and act on them. This is the biggest change in how developers use profiling since we started.

The new JProfiler MCP server, available as the @ej-technologies/jprofiler-mcp npm package, exposes JProfiler's profiling and heap analysis capabilities through the Model Context Protocol. It works with Claude Code, Cursor, Codex, Gemini CLI and any other MCP-compatible AI coding tool.

Profiling AI: LangChain4j and Spring AI

2026-03-04
Posted by Ingo Kegel

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

2026-02-27
Posted by Ingo Kegel

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.