Vert.x core 是运行在 JVM 上的响应式应用底层工具包,提供 HTTP、TCP 和文件系统等基础能力。
aeron-io/agrona
面向 Java 高性能场景的数据结构与工具库,包含原始类型集合、堆外缓冲区、队列和定时器轮等。
- Star
- 3,266
- Fork
- 459
- 未关闭 Issue
- 8
- 最近提交
- 昨天
这是什么?
Agrona 是一个 Java 库,提供构建高性能应用时常用的数据结构和工具方法。它被 Aeron 消息传输项目使用,并为 Simple Binary Encoding 消息编解码器提供缓冲区实现。
该库的重点是减少对象装箱和垃圾回收开销。它包含基于开放寻址的 int/long 原始类型列表、映射和集合,集合关联式缓存,以及无锁队列。缓冲区可以封装堆内或堆外内存并支持内存顺序语义,环形缓冲区和广播缓冲区则以堆外方式实现,用于进程间通信。
其他工具包括便于缓存和测试的时钟抽象、注册和取消时间复杂度为 O(1) 的可扩展定时器轮、用于并发服务的简单 Agent 框架、堆外计数器、防止磁盘被重复错误填满的错误日志,以及类 Snowflake 的唯一 ID 生成器。项目使用 Gradle 构建,支持 Java 17 及以上版本。
核心功能
- 01无装箱开销的 int/long 原始类型列表、映射和集合
- 02支持堆内外内存并具备内存顺序语义的缓冲区
- 03用于进程间通信的无锁队列与堆外环形、广播缓冲区
- 04注册与取消时间复杂度为 O(1) 的可扩展定时器轮
- 05堆外计数器和去重错误日志
- 06类 Snowflake 的并发唯一 ID 生成器
适用场景
- 构建需要减少垃圾回收停顿的低延迟 Java 消息或交易系统
- 在热点路径中用原始类型集合替代 java.util 集合
- 通过堆外环形或广播缓冲区在进程间共享数据
- 使用定时器轮调度大量定时任务
快速上手
- 1
从 Maven Central 获取最新发布版本并添加为依赖(参见 README 中的 Maven Central 链接)
- 2
使用 Gradle 从源码构建项目
./gradlew
使用前须知
- 构建和使用需要 Java 17 或更高版本。
- 它提供面向高性能场景的底层工具,更适合特定用途而非通用应用开发。
收录于专题
标签
常见问题
- agrona 是什么?
- 面向 Java 高性能场景的数据结构与工具库,包含原始类型集合、堆外缓冲区、队列和定时器轮等。 Agrona 是一个 Java 库,提供构建高性能应用时常用的数据结构和工具方法。它被 Aeron 消息传输项目使用,并为 Simple Binary Encoding 消息编解码器提供缓冲区实现。
- agrona 可以免费使用吗?用的什么许可证?
- agrona 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- agrona 还在维护吗?
- 活跃维护中。agrona 最近一次提交是在 2026年11月6日。
- agrona 适合用来做什么?
- 构建需要减少垃圾回收停顿的低延迟 Java 消息或交易系统 在热点路径中用原始类型集合替代 java.util 集合 通过堆外环形或广播缓冲区在进程间共享数据 使用定时器轮调度大量定时任务
- agrona 怎么安装和运行?
- 从 Maven Central 获取最新发布版本并添加为依赖(参见 README 中的 Maven Central 链接) 使用 Gradle 从源码构建项目: ./gradlew
- 在哪里获取 agrona?
- 源代码和安装说明在 GitHub 上:https://github.com/aeron-io/agrona
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.5万+1 本周2124JavaOther维护活跃更新于 20小时前
纯头文件的 C++14 无锁环形缓冲队列,用于线程间以极低延迟传递消息。
1905+3 本周222C++MIT更新于 15天前
一个极快的非加密哈希算法 C 库,可在各平台生成一致的 32/64/128 位哈希值。
1.1万+14 本周946COther维护活跃更新于 9天前
Rust 并发编程工具集,提供无锁队列、工作窃取双端队列、通道、原子类型等组件。
8635+4 本周594RustApache-2.0维护活跃更新于 6天前
Facebook 开源的 C++20 核心组件库,对 Boost 和 std 起补充作用,Meta 内部广泛使用。
3.1万5879C++Apache-2.0更新于 17小时前
面向 Go 的高性能并发内存缓存,可存储海量条目且降低 GC 开销。
8175620GoApache-2.0更新于 4天前