Repolode
aeron-io

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. 1

    从 Maven Central 获取最新发布版本并添加为依赖(参见 README 中的 Maven Central 链接)

  2. 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 数据每日更新。

相关项目

一个极快的非加密哈希算法 C 库,可在各平台生成一致的 32/64/128 位哈希值。

开发者工具#hash-function#checksum#non-cryptographic
1.1万+14 本周946COther维护活跃更新于 9天前