誰かが Apache CollectionUtils でベンチマークを作成したかどうか、私はさまよっていました。私の単純なベンチマークでは:
List<Integer> ints = Arrays.asList(3, 4, 6, 7,8, 0,9,2, 5, 2,1, 35,11, 44, 5,1 ,2);
long start = System.nanoTime();
ArrayList<Integer> filtered = new ArrayList<Integer>(ints.size());
for (Integer anInt : ints) {
if (anInt > 10) {
filtered.add(anInt);
}
}
long end = System.nanoTime();
System.out.println(filtered + " (" + (end - start) + ")");
Predicate<Integer> predicate = new Predicate<Integer>() {
@Override
public boolean evaluate(Integer integer) {
return integer > 10;
}
};
start = System.nanoTime();
filtered.clear();
CollectionUtils.select(ints, predicate,filtered);
end = System.nanoTime();
System.out.println(filtered + " (" + (end - start) + ")");
次の結果が得られました。
[35, 11, 44] (127643)
[35, 11, 44] (3060230)
私はこのライブラリの大ファンであると言わざるを得ません。これにより、コードがクリーンでテスト可能になりますが、現在、パフォーマンスに敏感なプロジェクトに取り組んでおり、このライブラリへの愛情がパフォーマンスを損なうのではないかと心配しています。
これは本当に一般的な質問だと思いますが、このライブラリを本番環境に使用した人はいますか? パフォーマンスの問題に気づきましたか?