Advertisement Β· 728 Γ— 90

Posts by Ingo Kegel

Post image

Works with Claude Code, Cursor, Codex, and any MCP-compatible tool.

Full story: www.ej-technologies.com/blog/2026/0...

5 days ago 0 0 0 0

I asked the agent afterward what it would have tried without the profiling data. Its answer: enabling Hibernate batch inserts. This would have had zero effect on this problem.

That is the gap the JProfiler MCP server closes.

5 days ago 0 0 1 0

AI coding agents are confident. On performance problems, they are often confidently wrong.

I pointed Claude Code at CommaFeed. Connected to the JProfiler MCP server, the agent found a database hotspot, proposed a fix, handled the review, and got the PR merged.

5 days ago 0 0 1 0
Post image

Agents can close the loop. In the screenshot below, an agent found redundant JDBC queries, fixed the code, re-profiled, and presented a before/after comparison.

Works with Claude Code, Cursor, Codex, and any MCP-compatible tool.

Try it out: www.ej-technologies.com/jprofiler/mcp

1 week ago 1 0 0 0

With JProfiler 16.1, your AI coding agent can now profile directly. Set up the MCP server with a single command, and the agent handles the rest: it records profiling data, analyzes CPU hotspots, JDBC queries, HTTP calls, and heap usage, then drills into the call chain to find the root cause.

1 week ago 0 0 1 0

Most performance bugs in Java applications never get profiled.

The friction is too high. Switching tools, setting up sessions, interpreting results. Profiling only happens when something is already broken in production.

1 week ago 0 0 1 0

3/ Evaluate JProfiler 16 for free at ej-technologies.com/jprofiler/d...


We're here for you if you have any questions while trying it out! πŸ™Œ

1 month ago 0 0 0 0
Post image

2/ New sorting options have been added, including ascending and descending directions. A new default sort mode prioritizes active, long-lived rows at the top, followed by recently closed rows.

1 month ago 0 0 1 0
Post image

1/ In JProfiler 16, timeline views, including thread history and probe timelines, support row pinning. Selected rows can be pinned to a dedicated area at the top of the view via the context menu. The order of pinned rows can be customized using drag-and-drop.

1 month ago 0 0 1 0
Advertisement

3/ Evaluate JProfiler 16 for free at ej-technologies.com/jprofiler/d...


We're here for you if you have any questions while trying it out! πŸ™Œ

1 month ago 0 0 0 0
Post image

2/ You can specify obfuscator types and mapping file paths for each snapshot individually. Once applied, all comparison views, including hot spots and call trees, resolve to original class and method names.

1 month ago 0 0 1 0
Post image

1/ JProfiler 16 introduces deobfuscation support for snapshot comparisons. Previously, comparing snapshots from obfuscated applications required manual mapping. The comparison window now includes a "Deobfuscate" option during file selection.

1 month ago 0 0 1 0

4/ Evaluate JProfiler 16 for free at ej-technologies.com/jprofiler/d...


We're here for you if you have any questions while trying it out! πŸ™Œ

1 month ago 0 0 0 0
Post image

3/ Additionally, the Heap Walker’s reference views now display full string values in the dialog, removing previous character limits on previews.

1 month ago 0 0 1 0
Post image

2/ UI accessibility is improved with a new hover button for tables containing truncated text, directly opening the relevant tab in the detail dialog.

1 month ago 0 0 1 0
Post image

1/ In JProfiler 16, the node detail dialog has been updated to provide cumulative statistics when multiple nodes are selected in hot spot views. This allows for immediate aggregation of performance data across disparate nodes without manual calculation.

1 month ago 0 0 1 0

3/ Evaluate JProfiler 16 for free at ej-technologies.com/jprofiler/d...


We're here for you if you have any questions while trying it out! πŸ™Œ

1 month ago 0 0 0 0
Advertisement
Post image

2/ This breakdown enables the isolation of thread-specific performance issues, such as identifying a single misbehaving thread within a larger pool. You can select a specific thread from the analysis dialog to jump directly to its call tree.

1 month ago 0 0 1 0
Post image

1/ A new analysis feature in JProfiler 16 allows for calculating the contribution of individual threads within a cumulative call tree. By selecting "Show Threads" on any node, users can access a percentage breakdown of all threads contributing to that specific execution path.

1 month ago 0 0 1 0

5/ Evaluate JProfiler 16 for free at ej-technologies.com/jprofiler/d...


We're here for you if you have any questions while trying it out! πŸ™Œ

1 month ago 0 0 0 0
Post image

4/ Comparison and export features allow users to diff two individual virtual threads or entire thread dumps in a dedicated viewer. Specific threads, selections, or full dumps can also be copied to the clipboard via the context menu for external analysis.

1 month ago 0 0 1 0
Post image

3/ JProfiler now groups threads with identical stack traces at the same hierarchical position into a single node. You can inspect individual thread names within these groups. This grouping is also available for platform thread dumps.

1 month ago 0 0 1 0
Post image

2/ Virtual threads are organized hierarchically within their thread containers. This structure is particularly relevant for structured concurrency, where each scope creates a corresponding container.

1 month ago 0 0 1 0
Post image

1/ JProfiler 16 adds dedicated support for virtual thread dumps. The thread dumps view now provides distinct actions for synchronous platform thread dumps and asynchronous virtual thread dumps,

1 month ago 0 0 1 0

4/ Evaluate JProfiler 16 for free at ej-technologies.com/jprofiler/d...


We're here for you if you have any questions while trying it out! πŸ™Œ

1 month ago 0 0 0 0
Advertisement
Post image

3/ On Linux with Java 25+, JProfiler now utilizes the jdk.CPUTimeSample event for data in the CPU section. This event measures Linux kernel CPU time, providing more accurate metrics than the old jdk.ExecutionSample event for production systems where JVMTI agents are restricted.

1 month ago 0 0 1 0
Post image

2/ The JFR recording wizard now supports throttle settings, including periods and emission rates. This is essential for the new jdk.CPUTimeSample event in Java 25. These throttle settings are also displayed in the CPU views for context.

1 month ago 0 0 1 0
Post image

1/ JProfiler 16 introduces significant optimizations for the JFR event browser. Data in the lower views is now pre-calculated, and the event table supports incremental loading. Sorting and total calculations now consider the entire filtered dataset, not just the visible subset.

1 month ago 0 0 1 0
Breaking the LLM Black Box: Custom Categorization in JProfiler
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 ...

While JProfiler defaults to grouping by model name, this screencast shows how to move beyond that predefined perspective.

youtu.be/cK0fYXiF1Po

If you like what you see, feel free to try it out yourself at

www.ej-technologies.com/jprofiler/d...

1 month ago 0 0 0 0

I'm continuing to record screencasts for new features in JProfiler!

The new AI probe deserves another screencast: Modern agentic applications perform diverse logical tasks through a single interface, yet they often appear as an undifferentiated stream in profilers.

1 month ago 0 0 1 0