一个日志,100M 每行解析,然后显示。 大概需要10秒钟, 但是一旦输入过滤内容,就耗时60秒。
// 按时间过滤 Iterator<AccessLog> ite = result.iterator(); while (ite.hasNext()) { AccessLog row = ite.next(); String rowTime = row.getRequestTime(); if (rowTime == null) { ite.remove(); continue; } if (beginTime.length() > 0 && rowTime.compareTo(beginTime) < 0) { ite.remove(); continue; }
开始以为是compareTo慢, 后来打印时间差,发现是ite.remove慢
看了下result,是个ArrayList,也就是数组呗,当初随手写的, 果断改成LinkedList,变成10秒了,OK了。
|