yangstarfly
2003-09-12 16:26
谢谢bruce

neuhawk
2003-09-12 16:38
不知道为什么,我用jcs跟没有用没有什么区别。

chinahero
2003-09-17 10:51
是啊,我发现我在hbm.xml中写不写上[jcs-cache usage="read-only"/]查询时间都一样

第一次查询

Begin time is 0

Hibernate: select post0_.id as x0_0_ from post post0_

Hibernate: select post0_.id as id, post0_.userid as userid from post post0_ where post0_.id=?

End time is 2281

第二次查询

Begin time is 0

Hibernate: select post0_.id as x0_0_ from post post0_

End time is 2625

第三次查询

Begin time is 0

Hibernate: select post0_.id as x0_0_ from post post0_

End time is 1766

时间差不多吧,不过第二次第三次没出现sql语句,是不是jcs起作用了?但是我明明在post.hbm.xml中没有使用[jcs-cache usage="read-only"/]这个tag

附读函数

public void readDB(Session session){

String sql = "select post from com.test.my.Post as post";

long begintime = System.currentTimeMillis();

System.out.println("Begin time is 0 ");

try{

Query query = session.createQuery(sql);

//List myList=query.list(); //据说用List Jcs无效

Iterator myIter=query.iterate();

}catch (HibernateException ee){

ee.printStackTrace();

}

long endtime=System.currentTimeMillis();

System.out.println("End time is "+(endtime-begintime));

}

robbin
2003-09-17 12:31
找一个字段非常多,数据量比较大的表测试。

你的JCS已经开始工作了。

robbin
2003-09-17 12:34
只有Iterator能读JCS,List不会去读JCS,你可以到Hibernate中文论坛精华区看我的Hibernate Iterator JCS分析贴。

chinahero
2003-09-17 13:13
那篇文章我看了,有一些问题

1.我在对应的类的描述文件hbm.xml中没加[jcs-cache "read-only"]这个hibernate会自动调用jcs来cache吗?

2.Iterator myIter=Query.Iterator()后,遍历这个Iterator特别慢,如果已经放到cache中去了,为什么还会这么慢

谢谢

robbin
2003-09-17 13:32
1. 不会

2. 可能数据量不够,性能差距拉不开。我在数据量不是很大的情况下测试MySQL, Iterator JCS速度不如JDBC,你可以到我那里看看性能版我贴的一个测试结果。

BTW. 建议去Hibernate中文论坛讨论,这里我照顾不太到。

猜你喜欢