Spring Boot JPA vs JDBC
A small stars app used about 90 MiB less RSS with JDBC than with JPA and Hibernate, and reached its dashboard about four seconds sooner.
We diagnose difficult production problems across Java, the JVM, JDBC, transactions, and databases. The work starts with evidence and ends with a root cause your team can verify.
A symptom in one layer often begins somewhere else. A depleted JDBC pool may start with transaction scope or a database lock. GC pressure may start with application allocation or retention. High CPU may reflect contention, retries, or queue buildup rather than productive work.
We correlate evidence instead of tuning each component in isolation.
Short, reproducible tests of JVM startup, memory, packaging, and deployment. When a result needs more room, it becomes a full article. We use small experiments to test JVM and framework hypotheses before turning them into production recommendations.
A small stars app used about 90 MiB less RSS with JDBC than with JPA and Hibernate, and reached its dashboard about four seconds sooner.
The official extracted layout cut median startup 23.3% and first-request latency 34.1% in six paired runs.
The same workload, JDK 25, and 80 MiB heap. Quarkus started larger, then had the smaller resident set.
Compact object headers helped, but swap and scheduling delay kept the result in stretch-test territory.
A few production performance problems we worked on at Google, Apple, and ServiceNow. Details have been anonymized and simplified.
Tell us what changed, what you have measured, and where the trail went cold.
Discuss a performance problem