<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o" -->

---
title: Project Leyden &amp; JDK 26: Bringing AOT Caching to ZGC
description: JDK 26 introduces JEP 516, enabling AOT object caching with ZGC through a new GC-agnostic cache format. Unlike previous implementations that stored literal...
canonical: https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Project Leyden &amp; JDK 26: Bringing AOT Caching to ZGC | daily.dev
og:description: JDK 26 introduces JEP 516, enabling AOT object caching with ZGC through a new GC-agnostic cache format. Unlike previous implementations that stored literal...
og:url: https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o
og:image: https://api.daily.dev/og/posts/psZQria0O.png
og:image:alt: Project Leyden &amp; JDK 26: Bringing AOT Caching to ZGC
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Leyden & JDK 26: Bringing AOT Caching to ZGC

**[SoftwareMill](https://daily.dev/sources/softwaremill)** · 4 min read · 3 upvotes · 0 comments

## Summary

JDK 26 introduces JEP 516, enabling AOT object caching with ZGC through a new GC-agnostic cache format. Unlike previous implementations that stored literal memory addresses, the new approach uses logical indices that are remapped at startup, allowing caches to work across different garbage collectors. The JVM automatically chooses between GC-specific (memory-mapped) and GC-agnostic (streamable) caches based on heap size and collector settings. Benchmarks with Spring Petclinic show approximately 26-28% faster startup times with minimal difference in cache size between the two formats.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://softwaremill.com/project-leyden-and-jdk-26-bringing-aot-caching-to-zgc/>

## Similar posts on daily.dev

- [JEP 516: Ahead-of-Time Object Caching with Any GC](https://daily.dev/posts/jep-516-ahead-of-time-object-caching-with-any-gc-prv89qow6) · Inside Java · 2 upvotes · 0 comments
- [foojay – a place for friends of OpenJDK](https://daily.dev/posts/foojay-a-place-for-friends-of-openjdk-5gmq7wbhe) · Foojay.io · 1 upvotes · 0 comments
- [Ahead-of-Time Class Loading & Linking](https://daily.dev/posts/ahead-of-time-class-loading-linking-yftlbv7es) · Baeldung · 0 upvotes · 0 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#java](https://daily.dev/tags/java), [#jvm](https://daily.dev/tags/jvm)

[View this post on daily.dev](https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Project Leyden & JDK 26: Bringing AOT Caching to ZGC","url":"https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o"},"datePublished":"2026-02-03T12:26:37.349Z","dateModified":"2026-02-03T12:26:59.630Z","description":"JDK 26 introduces JEP 516, enabling AOT object caching with ZGC through a new GC-agnostic cache format. Unlike previous implementations that stored literal...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e69e3b4657d56389dea68c7f4ebc7aa9?_a=AQAEulh","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e69e3b4657d56389dea68c7f4ebc7aa9?_a=AQAEulh","isAccessibleForFree":true,"articleSection":"SoftwareMill","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"SoftwareMill","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/30827c94697f47fcbc88ff9b59fa226f","url":"https://daily.dev/sources/softwaremill"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/project-leyden-jdk-26-bringing-aot-caching-to-zgc-pszqria0o","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,java,jvm","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"SoftwareMill","item":"https://daily.dev/sources/softwaremill"},{"@type":"ListItem","position":3,"name":"Project Leyden & JDK 26: Bringing AOT Caching to ZGC"}]}
```

