banq,再请教一个问题

02-12-19 vic
jive在做分页操作时候,它的实现机制是,先将对象的id保存在一个数组
中,只是在执行next()方法时候才根据数组当前index的内容去查找构造
对象并返回。我想问的是,这样效率会不会低?是不是在做数据库操作时
候如果解决了创建获取连结的瓶颈问题后,其他操作花费的时间就可以基
本忽略了?也就是说我一次构造一批对象和每个对象分别构造花费的时间
差不多?
另外,上次提的问题,也想听听您的意见。

banq
2002-12-19 16:08
在一个数组内保存id,这个办法是最有效率的

如果你一次性构造一批对象,并且不销毁它们,而且这些对象可能被反复使用,这其实是对象池概念,当然有效率。

否则,可能浪费内存,效率很低。

vic
2002-12-19 17:54
我是说,在jive中,每次调用UserIterator.next()时候,都要

1. 获取db连接
2. 创建Statement
3. 创建ResultSet
4. 构造一个对象(因为查询结果肯定最多一个)
5. 返回

如果我成批构造的话,所做的就是:
1. 获取db连接
2. 同上2
3. 同上3
4. 循环构造对象
5. 返回

因为对于分页操作来说,假设每页显示20条,那么用jive的方法和成批构
造的方法之间就差了19次,步骤1,2,3,5的操作。
通常获取数据库连结是个瓶颈,那么如果忽略步骤1的时间开销,是不是
这19次的时间差别可以忽略不计?