# Performance Tuning

Published articles for Performance Tuning.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Meet Jos Roseboom

DevFeed: [Meet Jos Roseboom](<https://devfeed.tech/articles/meet-jos-roseboom-21985.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/meet-jos-roseboom/>)

Author: vladmihalcea

Published: 2026-09-11T04:23:25Z

Content type: article

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [community](<https://devfeed.tech/tags/community.md>), [conference](<https://devfeed.tech/tags/conference.md>), [framework](<https://devfeed.tech/tags/framework.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [interview](<https://devfeed.tech/tags/interview.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>)

### AI overview

An interview with Jos Roseboom about JPA and Hibernate performance tuning, based on his JavaZone talk. He describes production incidents involving exhausted database connections and excessive queries caused by fetching entities and following associations.

### Source excerpt

JavaZone 2026 At the beginning of September, I participated in JavaZone for the third time and had the privilege of meeting a lot of passionate software developers willing to share their knowledge with the community. In the first conference day, I attended a very good talk about JPA performance tuning that was delivered by Jos Roseboom and since I enjoyed his talk, I proposed him to gave an interview for this blog. Therefore, in this article we have the pleasure of getting to know Jos and take opportunity of learning about Spring... Read More The post Meet Jos Roseboom appeared first on Vlad Mihalcea.

## Optimizing OPA performance: From arrays to objects

DevFeed: [Optimizing OPA performance: From arrays to objects](<https://devfeed.tech/articles/optimizing-opa-performance-from-arrays-to-objects-22577.md>)

Original publisher: [Read original article](<https://medium.com/capital-one-tech/optimizing-opa-performance-from-arrays-to-objects-a3c966acdaa5?source=rss----3db3a67cb648---4>)

Author: Capital One Tech

Published: 2026-07-07T14:25:30Z

Content type: tutorial

Language: en

Sources: [Capital One Tech](<https://devfeed.tech/sources/capital-one-tech.md>)

Topics: [opa](<https://devfeed.tech/topics/opa.md>), [Open Policy Agent](<https://devfeed.tech/topics/open-policy-agent.md>), [rego](<https://devfeed.tech/topics/rego.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [opa](<https://devfeed.tech/tags/opa.md>), [open-policy-agent](<https://devfeed.tech/tags/open-policy-agent.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [rego](<https://devfeed.tech/tags/rego.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [software-supply-chain](<https://devfeed.tech/tags/software-supply-chain.md>)

### AI overview

This article explains how to improve Open Policy Agent performance by choosing appropriate data structures for Rego policies. It focuses on replacing nested arrays with keyed objects to avoid inefficient array traversal when evaluating large datasets.

### Source excerpt

Achieve 99% faster Rego policy execution through optimization. Note: This post focuses on one aspect of performance tuning Rego policies and datasets evaluated by OPA-arrays vs. objects. The Rego Style Guide and Regal Rego linter are very helpful resources for learning Rego best practices and avoiding code smells in Rego policies. There is also the OPA performance tuning documentation. In 2018, I started using open policy agent (OPA) as a solution for controlling and preventing unwanted behaviors in our Kubernetes Clusters. OPA, along with Kubernetes Dynamic Admission Control, provided a means to build preventive controls. Since then, I have worked with several PaC solutions. I have always stayed close to the OPA tool set because of how well it supports multiple use cases. OPA is domain agnostic and can be used with virtually any use case, as long as you supply the correct data and policies. To that end, OPA use cases have expanded throughout several technical disciplines, such as cloud-native computing and software supply chain management. OPA performance engineering OPA enables us to unify PaC solutions across multiple use cases and systems, using the same languages and tools. However, there is always room for improvement and performance engineering policies and the execution thereof. In addition, optimizing data that policies evaluate and mutate should be part of our focus when we deliver OPA-based solutions. Recently I was asked to help with OPA performance issues. I made several recommendations, but I overlooked one simple and glaring issue: the poor performing policy was processing a large data set using nested-arrays, instead of the best practice of using keyed-objects. Later, something was bothering me about my interaction and I realized that while I gave decent architectural level advice, I completely missed the best engineering advice. Rego policies and data should be optimized just like other algorithms and relative data, and part of that optimization is

## Book Review - Troubleshooting Java

DevFeed: [Book Review - Troubleshooting Java](<https://devfeed.tech/articles/book-review-troubleshooting-java-21981.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/book-review-troubleshooting-java/>)

Author: vladmihalcea

Published: 2025-10-15T08:28:01Z

Content type: opinion

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [book](<https://devfeed.tech/tags/book.md>), [book-review](<https://devfeed.tech/tags/book-review.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [developer](<https://devfeed.tech/tags/developer.md>), [ide](<https://devfeed.tech/tags/ide.md>), [java](<https://devfeed.tech/tags/java.md>), [logging](<https://devfeed.tech/tags/logging.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [review](<https://devfeed.tech/tags/review.md>), [sql](<https://devfeed.tech/tags/sql.md>), [troubleshooting](<https://devfeed.tech/tags/troubleshooting.md>)

### AI overview

A review of the second edition of Troubleshooting Java by Laurentiu Spilca. The book covers code analysis, logging, debugging, profiling, SQL query investigation, lock monitoring, and deadlock troubleshooting for Java developers.

### Source excerpt

Introduction My friend, Laurentiu Spilca, has been working on the second edition of his Troubleshooting Java book, and when I was asked to review it, I was more than happy to do it since the book features a lot of topics that I'm also very interested in, such as performance tuning and query optimization. Audience This book is useful for any Java developer because it teaches you how to get the best out of your IDE debugger, as well as showing you how to profile Java applications and fix very complex issues,... Read More The post Book Review - Troubleshooting Java appeared first on Vlad Mihalcea.

## ESP H.264 Practical Usage Guide

DevFeed: [ESP H.264 Practical Usage Guide](<https://devfeed.tech/articles/esp-h-264-practical-usage-guide-13709.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/07/esp-h264-use-tips/>)

Author: John Lee

Published: 2025-07-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Espressif](<https://devfeed.tech/topics/espressif.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [ESP32-P4](<https://devfeed.tech/topics/esp32-p4.md>), [ESP32-S3](<https://devfeed.tech/topics/esp32-s3.md>), [Software](<https://devfeed.tech/topics/software.md>), [Internet of things](<https://devfeed.tech/topics/iot.md>), [real-time](<https://devfeed.tech/topics/real-time.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-devices](<https://devfeed.tech/tags/embedded-devices.md>), [esp32-p4](<https://devfeed.tech/tags/esp32-p4.md>), [esp32-s3](<https://devfeed.tech/tags/esp32-s3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [h-264](<https://devfeed.tech/tags/h-264.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [iot](<https://devfeed.tech/tags/iot.md>), [memory-optimization](<https://devfeed.tech/tags/memory-optimization.md>), [multimedia](<https://devfeed.tech/tags/multimedia.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [release](<https://devfeed.tech/tags/release.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This guide introduces Espressif's esp_h264 component for H.264 encoding and decoding on ESP32-series microcontrollers. It covers hardware acceleration, memory optimization, dynamic configuration, encoding and decoding workflows, API usage, ROI encoding, motion vector extraction, and dual-stream encoding on ESP32-P4.

### Source excerpt

This article introduces Espressif's esp_h264 component, a lightweight H.264 codec optimized for embedded devices. It shows how to leverage hardware acceleration, implement efficient video processing, and optimize performance for various applications.

## MySQL Query Optimization with Releem

DevFeed: [MySQL Query Optimization with Releem](<https://devfeed.tech/articles/mysql-query-optimization-with-releem-21986.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/mysql-query-optimization-releem/>)

Author: vladmihalcea

Published: 2025-05-12T18:46:00Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [MySQL](<https://devfeed.tech/topics/mysql.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [metrics](<https://devfeed.tech/tags/metrics.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [petclinic](<https://devfeed.tech/tags/petclinic.md>), [profile](<https://devfeed.tech/tags/profile.md>), [que](<https://devfeed.tech/tags/que.md>), [releem](<https://devfeed.tech/tags/releem.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This tutorial demonstrates how to use Releem to investigate and optimize SQL queries from a Spring application running on MySQL. It uses Spring Petclinic, a JMeter test plan, and load-related CPU and I/O metrics to identify time-consuming queries and apply optimization recommendations.

### Source excerpt

Introduction In this article, I'm going to show you how to optimize the queries executed by a Spring application running on MySQL using Releem. For a short introduction about Releem, check out this previous article, in which I explained how to set up Releem to collect metrics from your MySQL database. Spring Petclinic application The application under test is going to be the well-known Spring Petclinic that we are going to run using the MySQL profile: After starting the application, we are going to run the petclinic_test_plan.jmx JMeter test plan that is... Read More The post MySQL Query Optimization with Releem appeared first on Vlad Mihalcea.

## Announcing Shark: Smart Heap Analysis Reports for Kotlin

DevFeed: [Announcing Shark: Smart Heap Analysis Reports for Kotlin](<https://devfeed.tech/articles/announcing-shark-smart-heap-analysis-reports-for-kotlin-15513.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/announcing-shark-smart-heap-analysis-reports-for-kotlin>)

Author: P-Y Ricau

Published: 2019-08-06T19:00:00Z

Content type: release

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Android](<https://devfeed.tech/topics/android.md>), [Library](<https://devfeed.tech/topics/library.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cache](<https://devfeed.tech/tags/cache.md>), [cli](<https://devfeed.tech/tags/cli.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fragments](<https://devfeed.tech/tags/fragments.md>), [gc](<https://devfeed.tech/tags/gc.md>), [graph](<https://devfeed.tech/tags/graph.md>), [io](<https://devfeed.tech/tags/io.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>)

### AI overview

The article announces Shark, a standalone Kotlin heap-analysis library that powers LeakCanary 2. It describes an indexed, on-demand approach to reading hprof heap dumps, using low and constant memory, an LRU cache, and layered components for heap analysis and Android-specific reporting. The reported benchmark parsed heap dumps and found shortest paths from GC roots to leaking objects six times faster than perflib while using ten times less memory.

### Source excerpt

The heap analyzer that powers LeakCanary 2

## Learn Angular Router for Real-World Applications

DevFeed: [Learn Angular Router for Real-World Applications](<https://devfeed.tech/articles/learn-angular-router-for-real-world-applications-21337.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2018/12/egghead-learn-router-real-world-apps/>)

Published: 2018-12-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [guards](<https://devfeed.tech/tags/guards.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [router](<https://devfeed.tech/tags/router.md>), [rxjs](<https://devfeed.tech/tags/rxjs.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

An announcement for a two-part Egghead video course that teaches the Angular router, beginning with an approximately 60-minute introduction. The course covers routing concepts, route configuration, child routes, routing modules, URL segments, RxJS Observables, route guards, and lazy loading.

### Source excerpt

Lorem ipsum dolor sit amet

## Fixing Discourse performance regressions

DevFeed: [Fixing Discourse performance regressions](<https://devfeed.tech/articles/fixing-discourse-performance-regressions-41339.md>)

Original publisher: [Read original article](<https://samsaffron.com/archive/2015/10/02/fixing-discourse-performance-regressions>)

Author: Sam Saffron

Published: 2015-10-02T07:26:25Z

Content type: tutorial

Language: en

Sources: [Sam Saffron](<https://devfeed.tech/sources/sam-saffron.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [kibana](<https://devfeed.tech/tags/kibana.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [rails](<https://devfeed.tech/tags/rails.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A Discourse performance regression is used to explain a methodology for performance debugging and optimization. The article recommends prioritizing heavily used foreground routes, monitoring traffic and long-term performance trends, establishing baselines and goals, and using tools such as Kibana, Grafana, rack-mini-profiler, and flamegraphs. It also warns that Rails performance tuning in development mode can produce misleading noise compared with production.

### Source excerpt

Recently, I discovered a performance regression on a very common page on Discourse. I spent a fair amount of time debugging and optimizing. I follow a certain methodology while I do this kind of work. This post is a breakdown on the specific issue I faced with some points you can take back and apply to your next performance debugging session. Pick your fights The first and most important point to take is that you should pick your battles. Discourse has hundreds of routes, however the vast majority of the server cost is incurred by a handful. Pasted image792x576 22 KB The most important 3 routes for us are "topics/show", "list/latest" and "categories/index". They are the heart of the site and lion's share of foreground routes. "topic/timings", "user avatars" and "drafts" are all background routes, we still want to minimize work on them so servers work less hard and we can host more sites, however slowness there is usually not observed by end users. I always try to focus first on the most active foreground routes, those are the spots where I will invest the most amount of effort optimizing. To get a good picture of our traffic patterns we use Kibana. To answer the same question you may use Google Analytics, New Relic or some other tool. Start with a baseline and a goal We have a Grafana dashboard keeping an eye on our 2 most important routes for every site we run. I visit the dashboard regularly to see how performance is on those routes. Is displaying topics getting faster or slower? It is very important to have long term trends so you can isolate when stuff starts playing up. Recently I discovered this: Pasted image971x271 56.7 KB Showing topics on 2 particular sites (one is shown) got much slower. Having this information is golden. This graph is a visible report card on my work towards improving performance. When I see a graph like this my immediate goal becomes restoring old performance characteristics. This is particularly important here since this is our most imp

## Pool Go Routines To Process Task Oriented Work

DevFeed: [Pool Go Routines To Process Task Oriented Work](<https://devfeed.tech/articles/pool-go-routines-to-process-task-oriented-work-22072.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/09/pool-go-routines-to-process-task.html>)

Published: 2013-09-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [goroutines](<https://devfeed.tech/tags/goroutines.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [programming](<https://devfeed.tech/tags/programming.md>), [resource](<https://devfeed.tech/tags/resource.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

This article explains the Work Pool pattern in Go for processing task-oriented work. It describes queuing tasks, reusing available goroutines, configuring pool and queue capacity, and tuning resource use and application performance.

### Source excerpt

After working in Go for some time now, I learned how to use an unbuffered channel to build a pool of goroutines. I like this implementation better than what is implemented in this post. That being said, this post still has value in what it describes. External resource on github.com: https://github.com/goinggo/work On more than one occasion I have been asked why I use the Work Pool pattern. Why not just start as many Go routines as needed at any given time to get the work done? My answer is always the same. Depending on the type of work, the computing resources you have available and the constraints that exist within the platform, blindly throwing Go routines to perform work could make things slower and hurt overall system performance and responsiveness. Every application, system and platform has a breaking point. Resources are not unlimited, whether that is memory, CPU, storage, bandwidth, etc. The ability for our applications to reduce and reuse resources is important. Work pools provide a pattern that can help applications manage resources and provide performance tuning options. Here is the pattern behind the work pool: