TypedMemory: библиотека для быстрого маппинга Java-рекордов в native-память

Когда JVM тормозит, а данные нужно хранить быстро — на помощь приходит TypedMemory.
Разработчики Java, уставшие от бесконечных GC-пауз при работе с большими объёмами данных, получили новый инструмент. Библиотека TypedMemory позволяет отображать Java-рекорды прямо в native-память, минуя кучу. Звучит как магия, но на деле — это просто low-level доступ к памяти без посредников.
Как это работает?
TypedMemory использует sun.misc.Unsafe и MemorySegment из Project Panama, чтобы сериализовать и десериализовать Java-рекорды напрямую. Вам не нужно писать boilerplate-код для ручного копирования полей — библиотека делает это автоматически через рефлексию и аннотации.
- Скорость: операции с памятью выполняются на уровне нативных вызовов, без аллокаций объектов.
- Типобезопасность: используется типизированный доступ через генерики, так что в рантайме не будет сюрпризов.
- Простота: достаточно аннотировать record и вызвать
MemoryStore.put(record).
Конечно, это не панацея. Если вы пишете микросервис, который просто передаёт JSON, TypedMemory вам не нужен. Но если вы работаете с высоконагруженными системами, трейдинговыми платформами или in-memory кэшами — эта библиотека может стать вашим новым лучшим другом.
Комментарий студии METABYTE: Мы любим, когда разработчикам дают инструменты, ускоряющие работу. Главное — не забыть про -XX:+DisableExplicitGC, а то native-память может стать вашим новым эскапизмом.