如果有人对 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)
我必须说我是这个库的忠实粉丝,因为它使代码干净且可测试,但目前我正在从事性能敏感的项目,我担心我对这个库的喜爱会损害性能。
我知道这是一个非常普遍的问题,但是有人将这个库用于生产环境吗?并注意到性能问题?