This talk is a collection of smaller incidents showing why configuration is often key. There will be examples of critical path analysis, when to parallelize, when there is too much parallelization, timeout analysis, deadlocks, when to instrument more and other common pattern recognition.
Linus’s law states “Given enough eyeballs, all bugs are shallow.” This is very true, however, if a problem is obscured, the more eyes won’t help until they can see through the blocker. This talk addresses tracing, how and when to use it, and how it can see through these issues. It is re-enforced with a real-world example of how tracing solved a performance issue in Trace Compass. We will discuss tracing, and how it plays in a world where profiling and debugging already exist.
A number of things has happened since my "Optimising Eclipse Plug-ins" talk at EclipseCon 2016. In this presentation, I'll be providing an update of the kinds of things that cause performance issues in Java code, looking at:
- Memory usage patterns
- Classloading behaviours
- Integrated JFR in Java 11
- Modern garbage collectors
While a microservices architecture is more scalable than a monolith, it has a direct hit on performance.
To cope with that, one performance improvement is to set up a cache. It can be configured for database access, for REST calls or just to store session state across a cluster of server nodes. In this demo-based talk, I’ll show how Hazelcast In-Memory Data Grid can help you in each one of those areas and how to configure it. Hint: it’s much easier than one would expect.
Xtext is the de facto standard framework for the development of sophisticated domain specific languages (DSLs) in the Eclipse ecosystem and beyond. Even though the framework already provides a buckload of important features, we won’t become tired rethinking the architecture at scale or smaller features in isolation. Since Xtext version 2.20 is in the works, it’s about time to unveil a few of the planned features and work items.
Finding and identifying performance problems in your microservice can be a tricky affair. Performance testing is often done once development has finished, late in the cycle, which can impact delivery.
In this talk, we will cover how easy it is to enable metrics in your application and visualise that data to resolve performance issues.
While increasing amount of features usually result in poorer performance and more memory consumption, Eclipse Photon has proven the opposite: The Eclipse Platform got faster and less memory hungry than before. This has been achieved by intensive profiling of multiple use cases and refactorings derived from the analysis.
How can we more easily run performance benchmarks against Java SDKs and analyze and compare results? What information is coming out of some common open-source benchmarks and why might it be interesting? How can you incorporate performance tests into your continuous delivery pipeline? This talk addresses all of these questions and more as it surveys the performance testing story at AdoptOpenJDK and Eclipse OpenJ9.