Posted on 2011-04-15 13:39
沙漠中的鱼 阅读(950)
评论(0) 编辑 收藏 所属分类:
Java 、
Java基础
上次只测试查询的性能,而且都是在最优的情况下进行,没有考虑条他情况,这次重新修改了测试用例,把整个测试的各个过程描述出来(加载,排序,查找的效率)。
场景:随机生成5百万条不同的记录,而每条记录不存在相同的情况。现在将这5百万条记录在不同的情况下进行测试。测试结果如下
1、5百万条记录,总共查询50万次(查询前50万条记录)
数组性能测试加载花费:6.11秒
数组性能测试排序花费:18.313秒
数组性能测试查找花费:3.297秒
数组性能测试共花费:27.72秒
数组性能测试总共占:100005888 字节
RBTree性能测试加载花费:53.644秒
RBTree性能测试查找共花费:2.86秒
RBTree性能测试共花费:56.504秒
RBTREE性能测试共占用:240004864 字节
MAP性能测试加载花费:7.282秒
MAP性能测试查找花费:0.11秒
MAP性能测试共花费:7.392秒
MAP性能测试 共占用:173554048 字节
2、5百万条记录,总共查询5百万次(每条记录查询一次)
数组性能测试加载花费:6.078秒
数组性能测试排序花费:17.642秒
数组性能测试查找花费:33.049秒
数组性能测试共花费:56.769秒
数组性能测试总共占用 = 100005552 字节
RBTree性能测试加载花费:54.8秒
RBTree性能测试查找共花费:34.581秒
RBTree性能测试共花费:89.381秒
RBTREE性能测试共占用 = 240005024 字节
MAP性能测试加载花费:6.501秒
MAP性能测试查找花费:0.937秒
MAP性能测试共花费:7.438秒
MAP性能测试 共占用=173553888 字节
3、5百万条记录,总共查询5千万次(每条数据查询10次)
数组性能测试加载花费:6.11秒
数组性能测试排序花费:17.861秒
数组性能测试查找花费:331.224秒
数组性能测试共花费:355.195秒
数组性能测试总共占用:99990456字节
RBTree性能测试加载花费:53.097秒
RBTree性能测试查找共花费:345.866秒
RBTree性能测试共花费:398.963秒
RBTREE性能测试共占用 = 240005248 字节
MAP性能测试加载花费:7.235秒
MAP性能测试查找花费:9.375秒
MAP性能测试共花费:16.61秒
MAP性能测试共占用:173554048字节
测试文件地址: /Files/aoneany/search2.rar
================================================================
前面的测试算法中,有一个地方偷懒(直接使用String.CompareTo方法进行比较)导致查询效率很差,现在对其进行优化,测试后的数据为:
5百万条记录,总共查询5百万次(每条记录查询一次)
数组性能测试加载花费:1.016秒
数组性能测试排序花费:14.485秒
数组性能测试查找花费:0.703秒
数组性能测试共花费:16.204秒
RBTree性能测试加载花费:20.705秒
RBTree性能测试查找共花费:3.75秒
RBTree性能测试共花费:24.455秒
MAP性能测试加载花费:3.875秒
MAP性能测试查找花费:1.516秒
MAP性能测试共花费:5.391秒