fastutil은 작은 메모리 공간과 빠른 액세스 및 삽입 기능을 갖춘 유형별 맵, 세트, 목록 및 대기열을 제공하여 Java 컬렉션 프레임워크를 확장합니다. 또한 대용량(64비트) 배열, 세트 및 목록, 정렬 알고리즘, 바이너리 및 텍스트 파일을 위한 빠르고 실용적인 I/O 클래스, 대용량 파일을 매핑하는 메모리 기능을 제공합니다.
버전 8.5.5부터 fastutil은 편의를 위해 두 개의 jar로 분할됩니다.
fastutil-core.jar
에는 정수, long, double 및 객체를 기반으로 하는 데이터 구조가 포함되어 있습니다.
fastutil.jar
모든 클래스를 포함하는 클래식 배포판입니다.
핵심 클래스는 표준 jar에 중복되므로 두 가지 모두에 의존하는 경우(예: 전이적 종속성으로 인해) 코어 jar를 제외해야 합니다.
이전 분할 버전은 다양한 jar에서 다양한 클래스를 제공했지만 종속성을 현명하게 관리하는 것은 불가능했습니다.
find-deps.sh
쉘 스크립트를 사용하여 작은 맞춤형 fastutil jar(repo, 로컬 maven repo 등에 넣을 수 있음)을 생성할 수도 있습니다. jdeps
도구만 필요하므로(JDK 8과 함께 번들로 제공) 약간의 전제 조건이 있습니다. 프로젝트에서 사용하는 모든 fastutil 클래스를 식별하고 필요한 클래스만 포함하는 최소화된 jar을 만드는 데 사용할 수 있습니다.
먼저, 실제 자바 소스를 얻기 위해서는 make sources
합니다. 그 후, ant jar
단일 jar 파일을 생성합니다. ant javadoc
API 문서를 생성합니다. ant junit
단위 테스트를 실행합니다.
위의 세 개의 jar을 얻으려면 split.sh
스크립트를 실행한 다음 ant osgi-rest
스크립트를 실행해야 합니다.
Java 소스는 C 전처리기를 사용하여 생성됩니다. gencsource.sh
스크립트는 드라이버 파일, 즉 일부 전처리기 정의 기호와 일부 조건부 컴파일을 사용하는 Java 소스를 읽고 드라이버 코드와 환경을 사용자 정의하는 일부 정의를 포함하는 (가짜) C 소스를 생성합니다. .