iBATIS的cache

<settings cacheModelsEnabled="true" />是一定要配置的,不然cache不起作用。

readonly的配置

当readonly为true时,serialize是没有意义的,每个返回的对象就是cache中的对象,所以如果改动了该对象,则cache和数据库就不一致了。当readonly为true是不改动返回值要靠我们人工了。

当readonly为false时,serialize为false时,cache的实体是不需要实现Serializable的,但是很奇怪的是,其返回的实体不是原本cache中的实体,改动返回值不会影响以后的返回值。serialize为true时,cache的实体是需要实现Serializable的,其返回值应该是cache中的一个copy,所以可以随便修改而不影响cache。

看一个性能测试,对一行数据读取100000次。

条件 时间(毫秒)

没有cache 53164
readonly=true, 1406
readonly=false,serialize=false, 54538
readonly=false,serialize=true, 4077

结论:
1 可以看出,加入cache后性能提升还是很可观的。
2 readonly=false,serialize=true的cache比readonly=true的慢一点,但是不是很多,想比没有cache的情况还是性能提升很大。
3 奇怪的readonly=false,serialize=false得到了解答,从测试结果看,应该是每一次都是到db直接读的,这个和没有配置cache差不多,又因为一些关于cache的code,应该比没有cache还慢一点点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值