Java 言語を使用して、数値を含むテキスト ファイルを読みました。数テラバイトのデータと数千億の数値があります。
目標は、データをできるだけ速く取得し、GC アクティビティを最小限に抑えることです。テキストをプリミティブ (double、float、int) に直接解析したい。
直接私は意味します:
- 一時的なヘルパー オブジェクトをインスタンス化せずに
- java.lang.Double、java.lang.Float... でデータをボックス化せずに
- 一時的な java.lang.String インスタンスを作成せずに (JDK Double.parseDouble(...) を呼び出す場合は必須の手順)
これまでのところ、javolution フレームワークを使用してきました。
double javolution.text.TypeFormat.parseDouble(CharSequence sequence);
javolution コードを調べたところ、実際には一時的なオブジェクトが割り当てられていません。また、CharSequence を受け入れるため、一時的な文字列をインスタンス化することなく、データ ファイルからデコードされた文字を表示できます。
代替手段またはより良い方法はありますか?