Repolode
aeron-io

aeron-io/agrona

primitive 컬렉션, off-heap 버퍼, 큐, 타이머 휠 등을 제공하는 고성능 Java 자료구조 및 유틸리티 라이브러리입니다.

스타
3,266
포크
459
열린 이슈
8
마지막 커밋
어제

어떤 프로젝트인가요?

Agrona는 고성능 애플리케이션을 구축하기 위한 자료구조와 유틸리티 메서드를 제공하는 Java 라이브러리입니다. Aeron 메시지 전송에 사용되며, Simple Binary Encoding 메시지 코덱이 사용하는 버퍼 구현을 제공합니다.

이 라이브러리는 객체 boxing과 가비지 컬렉션 오버헤드를 줄이는 데 중점을 둡니다. open addressing을 사용하는 int 및 long primitive 리스트, 맵, 세트와 set-associative 캐시, lock-free 큐를 포함합니다. 버퍼는 memory ordering 의미 체계를 적용해 on-heap 또는 off-heap 메모리를 감쌀 수 있으며, IPC 통신용 ring 및 broadcast 버퍼는 off-heap으로 구현됩니다.

그 밖에 캐싱과 테스트를 지원하는 clock 추상화, O(1)로 타이머를 등록하고 취소할 수 있는 확장형 타이머 휠, 동시성 서비스용 간단한 agent 프레임워크, off-heap 카운터, 별도의 오류 로그, Snowflake 방식의 ID 생성기 등을 제공합니다. 프로젝트는 Gradle로 빌드하며 Java 17 이상을 대상으로 합니다.

핵심 기능

  • 01boxing을 방지하는 primitive int 및 long 리스트, 맵, 세트
  • 02memory ordering 의미 체계를 적용해 on-heap 및 off-heap 메모리를 감싸는 버퍼
  • 03lock-free 큐와 IPC용 off-heap ring 및 broadcast 버퍼
  • 04O(1)로 타이머를 등록하고 취소할 수 있는 확장형 타이머 휠
  • 05off-heap 카운터와 별도의 오류 로그
  • 06동시성 환경에서 사용할 수 있는 Snowflake 방식의 고유 ID 생성기

활용 사례

  • 가비지 컬렉션으로 인한 일시 중단을 최소화해야 하는 저지연 Java 메시징 또는 트레이딩 시스템 구축
  • primitive 키를 저장하는 핫 패스에서 java.util 컬렉션 대체
  • off-heap ring 또는 broadcast 버퍼를 통한 프로세스 간 데이터 공유
  • 타이머 휠로 대량의 타이머 예약

빠른 시작

  1. 1

    Maven Central에서 최신 릴리스를 종속성으로 설치합니다(README의 Maven Central 링크 참조).

  2. 2

    Gradle로 소스에서 프로젝트를 빌드합니다.

    ./gradlew

사용 전 알아둘 점

  • 빌드하고 사용하려면 Java 17 이상이 필요합니다.
  • 고성능 코드용 저수준 유틸리티를 제공하므로 일반적인 애플리케이션 개발보다는 특수한 용도를 대상으로 합니다.

포함된 컬렉션

토픽

자주 묻는 질문

agrona은(는) 무엇인가요?
primitive 컬렉션, off-heap 버퍼, 큐, 타이머 휠 등을 제공하는 고성능 Java 자료구조 및 유틸리티 라이브러리입니다. Agrona는 고성능 애플리케이션을 구축하기 위한 자료구조와 유틸리티 메서드를 제공하는 Java 라이브러리입니다. Aeron 메시지 전송에 사용되며, Simple Binary Encoding 메시지 코덱이 사용하는 버퍼 구현을 제공합니다.
agrona은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
agrona은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
agrona은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. agrona의 마지막 커밋은 2026년 11월 6일입니다.
agrona은(는) 어디에 사용할 수 있나요?
가비지 컬렉션으로 인한 일시 중단을 최소화해야 하는 저지연 Java 메시징 또는 트레이딩 시스템 구축 primitive 키를 저장하는 핫 패스에서 java.util 컬렉션 대체 off-heap ring 또는 broadcast 버퍼를 통한 프로세스 간 데이터 공유 타이머 휠로 대량의 타이머 예약
agrona는 어떻게 설치하나요?
Maven Central에서 최신 릴리스를 종속성으로 설치합니다(README의 Maven Central 링크 참조). Gradle로 소스에서 프로젝트를 빌드합니다.: ./gradlew
agrona은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/aeron-io/agrona

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

플랫폼에 관계없이 동일한 32·64·128비트 해시를 생성하는 초고속 비암호학적 해싱용 C 라이브러리입니다.

개발 도구#hash-function#checksum#non-cryptographic
1.1만+14 이번 주946COther활발히 관리됨업데이트 10일 전