浏览 2013 次
锁定老帖子 主题:iBATIS的cache
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-04
最后修改:2011-06-18
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还慢一点点。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |