沙漠中的鱼

欲上天堂,先下地狱
posts - 0, comments - 56, trackbacks - 0, articles - 119
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理

遍历查找性能测试报告(Map,Array,RBTree)

Posted on 2011-04-15 13:39 沙漠中的鱼 阅读(931) 评论(0)  编辑  收藏 所属分类: JavaJava基础
 

 

上次只测试查询的性能,而且都是在最优的情况下进行,没有考虑条他情况,这次重新修改了测试用例,把整个测试的各个过程描述出来(加载,排序,查找的效率)。

场景:随机生成5百万条不同的记录,而每条记录不存在相同的情况。现在将这5百万条记录在不同的情况下进行测试。测试结果如下

15百万条记录,总共查询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 字节

25百万条记录,总共查询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 字节

35百万条记录,总共查询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


只有注册用户登录后才能发表评论。


网站导航: