Sign in

Ingo Kegel

@ingokegel.bsky.social
85 followers 86 following 566 posts

Building JProfiler & install4j at ej-technologies. Java expert since the early days. Deep dives into profiling, performance, and build tools.

PostsRepliesMedia
Ingo Kegel @ingokegel.bsky.social · 22/09/2026
JEP 544 was just proposed for Java 28. Is Project Leyden on the home stretch to end the GraalVM startup time monopoly? Only one way to find out, by comparing them.
130
Ingo Kegel @ingokegel.bsky.social · 10/09/2026
📢 SBOMs become mandatory in 15 months. December 11, 2027, is the deadline for the SBOM obligations of the EU Cyber Resilience Act. If you already have one, chances are high that it is incorrect. Why?
100
Ingo Kegel @ingokegel.bsky.social · 07/09/2026
Apache Fory - the binary JVM serialization champion - released a JSON format in 1.7.0. But my benchmark was 2.8x slower than Jackson. This could not be right. So I started to investigate and finally made it 4.5 times faster.
100
Reposted by Ingo Kegel
Adam Bien @adambien.blog · 29/08/2026
Three decades of public Java specs went onto the open web, and Common Crawl scraped all of it. That, plus explicit types and a fast compiler, is why LLMs write Java well 👉 adambien.blog/roller/java_... #LLM #java #airhacks
adambien.blog
adam bien's blog
153
Ingo Kegel @ingokegel.bsky.social · 31/08/2026
Java vs. Kotlin: Who can (de)serialize faster? When I published my Java serialization framework shootout, one of the questions asked was "What about Kotlin?" So here we go.
100
Ingo Kegel @ingokegel.bsky.social · 21/08/2026
Can you trust agents to analyze deep profiling snapshots from production? Those snapshots most likely contain PII, so depending on the rules of your organization, the answer may be a hard no.
220
Ingo Kegel @ingokegel.bsky.social · 11/08/2026
1/ Java serialization sucks. That's why there are so many alternatives. There's a new kid on the block who claims to be much faster than anybody else. I was curious, so I put together a comparison of the top 5 Java serialization frameworks.
123
Ingo Kegel @ingokegel.bsky.social · 07/08/2026
I've built a new open source tool to profile JVMs in production: Meet jvmguard github.com/jvmguard/jv...
231
Ingo Kegel @ingokegel.bsky.social · 03/08/2026
Have you added an MCP server to your product? Probably you just test it with your favorite agent, OpenCode, Claude Code, Codex, whatever. However, that may be a bad idea.
141
Ingo Kegel @ingokegel.bsky.social · 27/07/2026
For AI agents, the natural way of interacting with actual systems is via command line utilities, much more than via tool APIs like MCP servers. This is where the new features in JProfiler 16.2 come in handy. 👇
110
Ingo Kegel @ingokegel.bsky.social · 29/06/2026
1/ 🌟 New in install4j 13: Console mode gets a rich, interactive terminal UI when the installer runs on Java 25+ in an ANSI-capable terminal. Colored output makes success and error messages stand out.
100
Ingo Kegel @ingokegel.bsky.social · 26/06/2026
1/ 🌟 New in install4j 13: A new Test API lets you write automated, end-to-end tests that drive an installer UI in GUI mode from a test JVM. It's framework-agnostic: use it from JUnit, TestNG, Spock, or a plain main method.
100
Ingo Kegel @ingokegel.bsky.social · 25/06/2026
1/ 🌟 New in install4j 13: install4j can now build Windows MSIX media files. MSIX is the modern packaging format for Windows and the native format for the Microsoft Store. It integrates with managed deployment tools like Microsoft Intune.
100
Ingo Kegel @ingokegel.bsky.social · 24/06/2026
1/ 🌟 New in install4j 13: install4j ships an AI agent skill. A compatible coding assistant loads it on its own and can read, edit, and create install4j project files. Describe a change in natural language, and the assistant applies it to your project.
100
Ingo Kegel @ingokegel.bsky.social · 23/06/2026
We've just released install4j 13 with lots of new functionality 🎉 Big thanks to all our customers who suggested many of the new features! Take a look at the "What's new" page at 💡 www.ej-technologies.com/install4j/w... and try it yourself at 🚀 www.ej-technologies.com/install4j/d...
000
Ingo Kegel @ingokegel.bsky.social · 25/05/2026
Did you ever make the mistake of asking your agent to move a lot of classes to another module? It cannot do it. It fails miserably while trying to find small clusters of classes that it can move at a time so that the build still works every step of the way.
110
Ingo Kegel @ingokegel.bsky.social · 24/04/2026
For no reason at all, I gave jclasslib, my open-source JVM bytecode viewer, to a coding agent and told it to profile with the JProfiler MCP server.
130
Ingo Kegel @ingokegel.bsky.social · 17/04/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 10/04/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 11/03/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 11/03/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 10/03/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 10/03/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 09/03/2026
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,
100
Ingo Kegel @ingokegel.bsky.social · 09/03/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 06/03/2026
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.
100
Ingo Kegel @ingokegel.bsky.social · 06/03/2026
1/ In JProfiler 16, the probe call tree and hot spots views can now have a metric selector. In the "Files" or "Sockets" probes, you can toggle between event duration and specific metrics like "Read Throughput" or "Write Throughput."
100
Ingo Kegel @ingokegel.bsky.social · 05/03/2026
1/ JProfiler 16 introduces a reimplemented, file-based backend for probe event recording. This architectural change moves away from memory-limited storage, enabling high-throughput recording and analysis of massive event sets numbering in the millions.
100
Ingo Kegel @ingokegel.bsky.social · 04/03/2026
I'm back at recording screencasts for new features in JProfiler!
100
Ingo Kegel @ingokegel.bsky.social · 03/03/2026
1/ The JProfiler 16 installer has been streamlined to run without requesting admin privileges by default. Elevated permissions are now only required if you explicitly choose to install for all users via the customized execution mode.
100
Ingo Kegel @ingokegel.bsky.social · 03/03/2026
1/ JProfiler 16 features a complete UI overhaul with a modernized visual design and a new icon set. The update includes refreshed light and dark themes to improve readability and workspace aesthetics.
100
Ingo Kegel @ingokegel.bsky.social · 02/03/2026
1/ For the new AI probe in JProfiler 16, we've added a cool demo session to let you explore the probe. Start "LLM demo" in the start center and activate the AI probe to get started.
100
Ingo Kegel @ingokegel.bsky.social · 02/03/2026
1/ Your LLM calls are slow and expensive, but you have no idea which model interactions are burning tokens. At least until you got the new AI probe in JProfiler 16, which captures every chat request and embedding through LangChain4j and Spring AI and connects them to your code.
100
Ingo Kegel @ingokegel.bsky.social · 25/02/2026
Big JProfiler release coming up! Lots of work on the UI and also - cue the drumroll - introducing AI features (expectably, but not in the way you might expect). Stay tuned 👀 www.ej-technologies.com/jprofiler
ej-technologies.com
JProfiler: JProfiler – the Leading Java Profiler for Deep JVM Analysis
JProfiler bridges high-level analytics and low-level JVM data, delivering unmatched insights to solve your toughest performance problems, memory leaks, threading issues, and higher-level problems in technologies like JDBC, JPA, and more.
000
Ingo Kegel @ingokegel.bsky.social · 11/02/2026
JProfiler works even in the most restricted, high-performance environments imaginable. Like a Nanos unikernel. Check out this walkthrough by Angelo Rubini: foojay.io/today/unike...
foojay.io
foojay – a place for friends of OpenJDK
foojay is the place for all OpenJDK Update Release Information. Learn More.
000
Ingo Kegel @ingokegel.bsky.social · 21/11/2025
1/ ⭐ New in install4j 12: UI scaling has been implemented for installer applications. You can now scale the size of installer applications by an arbitrary percentage on the "Installer->Look & Feel" step.
100
Ingo Kegel @ingokegel.bsky.social · 20/11/2025
1/ ⭐ New in install4j 12: Support for the new Apple .icon bundles was added.
100
Ingo Kegel @ingokegel.bsky.social · 19/11/2025
⭐ New in install4j 12: A JDK provider for IBM Semeru was added. Semeru runtimes are IBM-branded OpenJ9 JDKs. You can now select these JDKs for bundling on the "General Settings->JRE Bundles" step.
100
Ingo Kegel @ingokegel.bsky.social · 18/11/2025
1/ ⭐ New in install4j 12: Support for renaming for RPM and DEB media files has been added. Whenever you rename the "Short name" on the "General Settings->Application Info" step, your package name will change, and upgrades will no longer work, leaving old versions installed.
100
Ingo Kegel @ingokegel.bsky.social · 17/11/2025
1/ ⭐ New in install4j 12: Support for streamlining installations has been added. This builds on the feature in previous versions where screens could be skipped for update installations if the user confirmed an update installation in the "Update alert" form component.
100
Ingo Kegel @ingokegel.bsky.social · 14/11/2025
1/ ⭐ New in install4j 12: The "Add a Startup Executable" action has been improved in several ways:
100
Ingo Kegel @ingokegel.bsky.social · 13/11/2025
1/ ⭐ New in install4j 12: Support for the Apple Service Management framework. This should be used for single bundle archives instead of "Install a service" and "Add a startup executable" actions.
100
Ingo Kegel @ingokegel.bsky.social · 12/11/2025
1/ ⭐ New in install4j 12: Code signing is now a separate section in the install4j IDE with different steps for Windows and macOS.
100
Ingo Kegel @ingokegel.bsky.social · 11/11/2025
1/ ⭐ New in install4j 12: The way installers set their installation directory has been reworked, adding substantial new functionality and greatly extending flexibility.
121
Ingo Kegel @ingokegel.bsky.social · 10/11/2025
1/ ⭐ New in install4j 12: The binary architecture on macOS has been reworked. Previous versions of install4j used shell scripts for daemons and launchers. Now, all launchers are binary launchers that start the JVM in-process. This has the following benefits:
100
Ingo Kegel @ingokegel.bsky.social · 07/11/2025
1/ ⭐ New in install4j 12: Widget styles have been added to change fonts, colors, and other aspects of all widgets that are shown in installer applications.
100
Ingo Kegel @ingokegel.bsky.social · 07/11/2025
1/ Microsoft just released version 3.17.1 of their Gradle support for VS Code, which now includes my contribution to enable profiling for Gradle tasks. github.com/microsoft/v...
github.com
Add support for profiling Gradle tasks by ingokegel · Pull Request #1639 · microsoft/vscode-gradle
JProfiler 15 will add VS Code integration and as part of that effort we would like to support profiling Gradle tasks as well. To accomplish that, we need to add an -agentpath VM parameter to a Java...
100
Ingo Kegel @ingokegel.bsky.social · 06/11/2025
1/ ⭐ New in install4j 12: DMGs on macOS can now be styled right in the install4j IDE. You can apply backgrounds, position and the app icon's size manually and add symbolic links like the /Applications directory at arbitrary positions. Also, the bounds of the Finder window can be set.
100
Ingo Kegel @ingokegel.bsky.social · 05/11/2025
1/ ⭐ New in install4j 12: The IDE has a new UI with a refreshed visual appearance and new icons. We hope you like it! We have light and dark themes.
100
Ingo Kegel @ingokegel.bsky.social · 04/11/2025
We've just released install4j 12 with lots of new functionality 🎉 Big thanks to all our customers who suggested many of the new features! Take a look at the "What's new" page at 💡 www.ej-technologies.com/install4j/w... and try it yourself at 🚀 www.ej-technologies.com/install4j/d...
000