Vert.x coreは、JVM上でリアクティブなイベントループベースのアプリケーションを構築するための低レベルツールキットで、HTTP、TCP、ファイルシステムへのアクセスを提供します。
aeron-io/agrona
プリミティブコレクション、オフヒープバッファ、キュー、タイマーホイールなどを備えた、高性能なJavaデータ構造・ユーティリティライブラリ。
- スター
- 3,266
- フォーク
- 459
- 未解決の Issue
- 8
- 最終コミット
- 15 時間前
これは何?
Agronaは、高性能アプリケーションの構築に使えるデータ構造とユーティリティメソッドを提供するJavaライブラリです。Aeronのメッセージトランスポートで利用されており、Simple Binary Encodingのメッセージcodecが依存するバッファ実装も提供します。
このライブラリは、オブジェクトのボクシングやガベージコレクションによるオーバーヘッドの削減を重視しています。intとlongのプリミティブリスト、オープンアドレッシングを使うマップとセット、セットアソシアティブキャッシュ、ロックフリーキューを備えています。バッファはメモリ順序のセマンティクスを保ちながらヒープ内またはオフヒープのメモリをラップでき、IPC通信向けのリングバッファとブロードキャストバッファはオフヒープで実装されています。
そのほか、キャッシュやテストに利用できるクロック抽象化、登録とキャンセルをO(1)で行えるスケーラブルなタイマーホイール、並行サービス向けのシンプルなエージェントフレームワーク、オフヒープカウンター、独立したエラーログ、Snowflake方式のID生成器などのユーティリティがあります。Gradleでビルドでき、Java 17以降を対象としています。
主な機能
- 01ボクシングを避けられる、プリミティブ型int・longのリスト、マップ、セット
- 02メモリ順序のセマンティクスを保ちながら、ヒープ内およびオフヒープのメモリをラップするバッファ
- 03ロックフリーキューと、IPC向けのオフヒープリングバッファおよびブロードキャストバッファ
- 04登録とキャンセルをO(1)で行えるスケーラブルなタイマーホイール
- 05オフヒープカウンターと独立したエラーログ
- 06Snowflake方式の並行処理対応ユニークID生成器
ユースケース
- ガベージコレクションの停止時間を抑える必要がある、低レイテンシのJavaメッセージングシステムやトレーディングシステムの構築
- プリミティブ型のキーを扱うホットパスで、java.utilのコレクションを置き換える
- オフヒープのリングバッファやブロードキャストバッファを介したプロセス間のデータ共有
- タイマーホイールを使った大量のタイマーのスケジューリング
クイックスタート
- 1
依存関係として Maven Central から最新リリースをインストールします(README の Maven Central リンクを参照)
- 2
Gradle でソースからプロジェクトをビルドします
./gradlew
使う前に知っておきたいこと
- ビルドと使用には Java 17 以降が必要です。
- 高性能なコード向けの低レベルユーティリティを提供するため、一般的なアプリケーション開発ではなく、特定の用途を対象としています。
収録されている特集
トピック
よくある質問
- agrona とは?
- プリミティブコレクション、オフヒープバッファ、キュー、タイマーホイールなどを備えた、高性能なJavaデータ構造・ユーティリティライブラリ。 Agronaは、高性能アプリケーションの構築に使えるデータ構造とユーティリティメソッドを提供するJavaライブラリです。Aeronのメッセージトランスポートで利用されており、Simple Binary Encodingのメッセージcodecが依存するバッファ実装も提供します。
- 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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
スレッド間のメッセージ受け渡しを低レイテンシで実現する、ヘッダーのみのC++14製ロックフリー・リングバッファキュー。
プラットフォームを問わず同一の32、64、128ビットハッシュを生成する、超高速な非暗号学的ハッシュのCライブラリ。
ロックフリーキュー、work-stealing deque、channel、epochベースのGC、atomic、scoped threadを備えたRustの並行処理ツール群。
Meta内部で広く使われている、Boostやstdを補完するFacebook製のオープンソースC++20コアライブラリ。
大量のエントリをヒープ上に保持しながらGC負荷を抑える、Go向けの高速な並行処理対応・自動削除型インメモリキャッシュ。