fastutil は、メモリ フットプリントが小さく、高速なアクセスと挿入を備えた型固有のマップ、セット、リスト、およびキューを提供することにより、Java コレクション フレームワークを拡張します。また、大きな (64 ビット) 配列、セット、リスト、ソート アルゴリズム、バイナリ ファイルとテキスト ファイル用の高速で実用的な I/O クラス、および大きなファイルのメモリ マッピング機能も提供します。
バージョン 8.5.5 以降、fastutil は便宜上 2 つの jar に分割されています。
fastutil-core.jar
には、整数、long、double、およびオブジェクトに基づくデータ構造が含まれています。
fastutil.jar
はクラシックなディストリビューションであり、すべてのクラスが含まれています。
コア クラスは標準 jar 内で重複しているため、両方に依存している場合 (たとえば、推移的な依存関係のため) は、コア jar を除外する必要があることに注意してください。
以前の分割バージョンでは、異なる jar で異なるクラスが提供されていましたが、依存関係を適切に管理することは不可能であることが判明しました。
find-deps.sh
シェル スクリプトを使用して、カスタマイズされた小さな fastutil jar (リポジトリ、ローカル Maven リポジトリなどに置くことができます) を作成することもできます。必要なのはjdeps
ツール (JDK 8 にバンドルされている) のみであるため、前提条件は穏やかです。これを使用すると、プロジェクトで使用されるすべての fastutil クラスを識別し、必要なクラスのみを含む最小化された jar を構築できます。
まず、実際の Java ソースを取得するmake sources
必要があります。その後、 ant jar
単一の jar ファイルを生成します。 ant javadoc
API ドキュメントを生成します。 ant junit
単体テストを実行します。
上記の 3 つの jar を取得したい場合は、スクリプトsplit.sh
実行してから、 ant osgi-rest
実行する必要があります。
Java ソースは C プリプロセッサを使用して生成されます。 gencsource.sh
スクリプトは、ドライバー ファイル (プリプロセッサー定義のシンボルと条件付きコンパイルを使用する Java ソース) を読み取り、ドライバー コードと環境をカスタマイズするいくつかの定義を含む (偽の) C ソースを生成します。 。