State of Java Survey

Do you ever wonder what OpenJDK distributions and what Java versions your peers are using? What Java versions? Java-based infrastructures and languages? How many are running Java applications in public clouds?  Azul is gathering all that data from a survey of Java users, running until 6:30pm CT on June 15, 2023. If you want to participate, the survey takes about …

Read More »

Announcing the Digma Beta: First Runtime Linter for Java Code

Call for Developers We are looking for senior Java developers to participate in the beta program of a new free runtime linter that provides Continuous code Feedback.Digma is a Jetbrains IDE plugin that analyzes your code in runtime, improving coding practices and confidence when working on complex Java code. The plugin runs locally and doesn’t require sharing data. We have …

Read More »

Foojay Podcast #23: Java Profiling and Performance

How do you get the maximum performance out of your Java application? And how to use profiling to find the bottlenecks? Let’s learn all about it in this podcast, with Heinz Kabutz, Marcus Lagergren, Chris Newland, and Frank Delporte! Java profiling is a crucial technique for measuring and improving the performance of applications. It helps identify bottlenecks, memory leaks, and …

Read More »

FinOps: Tim O’Brien at Walmart

FinOps and Cloud Cost Management, what’s it all about and how does it impact us as developers and others who are close to the code? In this series on Foojay.io, you’re introduced to FinOps practitioners around the world, focused on how they have gradually found themselves, their technology and their organization in the FinOps space. Tim O’Brien is Senior Director …

Read More »

Mastering the Art of Controlling the JIT: Unlocking Reproducible Profiler Tests

In my last blog post, I hinted Using Async-Profiler and Jattach Programmatically with AP-Loader, that I’m currently working on a test library for writing better profiling API tests. The library is still work-in-progress, but it already allows you to write profiling API tests in plain Java: private int innerASGCT2() { new Tracer().runASGCT().assertTrue( Frame.hasMethod(0, “innerASGCT2”, “()I”), Frame.hasMethod(1, “testRunASGCT2”)); return 0; } …

Read More »

Rolling Binary Trees: A Guide to Common Design Patterns in Java

Introduction Binary trees are fundamental data structures, ubiquitous in computer science and software engineering. We use them to represent hierarchical data and implement more complex data structures, such as search trees, syntax trees, cryptographic hash trees, space partitioning trees, heaps, and so on. Common binary tree operations include insertion, deletion, traversal, searching, and rotation. A relatively uncommon and unexplored operation …

Read More »

Enriching Kafka Applications with Contextual Data

Developing high-performance large-stream processing applications is a challenging task. Choosing the right tool(s) is crucial to get the job done; as developers, we tend to focus on performance, simplicity, and cost. However, the cost becomes relatively high if we end up with two or more tools to do the same task. Simply put, you need to multiply development time, deployment …

Read More »

Using Pausers in Event Loops

Typically in low-latency development, a trade-off must be made between minimising latency and avoiding excessive CPU utilisation. This article explores how Chronicle’s Pausers can be used to automatically apply a back-off strategy when there is no data to be processed, providing an excellent balance between resource usage and responsive, low-latency, low-jitter applications. Description of the Problem In a typical application …

Read More »

Write Once, Run Embedded in any IDE

Having written many Java GUI applications, I thought it would be cool to run them embedded in IntelliJ IDEA, Eclipse and NetBeans. I didn’t want to write three plugins per application so I came up with this solution. The embedded panel criteria To convert my Java Swing applications to run embedded in an IDE, I had to put the user …

Read More »

Reduce Java Application Startup and Warmup Times with CRaC

Now developers can try CRaC for themselves. Today Azul announces the general availability of Azul Zulu Builds of OpenJDK for Java 17 with CRaC support in x86, 64-bit configurations. When a Java application runs, the JVM goes through the process of loading, initializing, and optimizing the code used by the application, including libraries, frameworks, and other components to reach the …

Read More »