カスタム コンパレータと多数のエントリがTreeMap<List<String>, Integer>
あります (この時点では 700k ですが、それ以上になる可能性があります)。List インスタンスは通常短い (1 ~ 3 エントリ)。
現在、標準のシリアル化を使用すると約 2 分かかりますが、以下のようなカスタム実装にはまだ 1 分以上かかります。
@Override
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
frequencies.clear(); //frequencies is the TreeMap
int entrySize = in.readInt();
for(int i = 0; i < entrySize; ++i) {
int phraseLength = in.readInt();
List<String> phrase = new ArrayList<>(phraseLength);
for(int j = 0; j < phraseLength; ++j) {
phrase.add((String)in.readObject());
}
frequencies.put(phrase, in.readInt());
}
}
どうすれば速くなりますか?