用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2929|回复: 4
收起左侧

[讨论/交流] 如果修改一下ci的页面缓存时间判断方法,会不会让缓存更快

[复制链接]
发表于 2010-4-29 11:37:28 | 显示全部楼层 |阅读模式
我看了一下ci的缓存文件时间的判断方法,是在缓存文件开头写了个过期时间,每次需要打开文件,然后读取,然后截取出时间的那个字符串,在判断时间,但如果直接用文件的生成时间或者修改时间来判断,会不会更快一点,毕竟这地方提高10%左右的判断速度就影响很大了.
不知道为什么ci要这么做,还是类似filemtime 这样的函数有一些bug,比如在不同操作系统下获取的会不准确之类的,还是必须要使用clearstatcache这个函数才能实现这个效果而这个函数的效率比较低.
发表于 2010-4-29 12:33:18 | 显示全部楼层
用生成时间/修改时间判断?那还需要一个cache_expiration,存哪里?
ci默认缓存查询是不会创建controller的,判断缓存过期的时候也无法从controller获得过期时间
总是需要个文件或其他什么方式保存cache_expiration
 楼主| 发表于 2010-4-29 15:17:08 | 显示全部楼层
哦  我是要在我自己的一个项目里面写了一个缓存功能  参考了一下ci 的, 不过我的是在页面上有一个缓存的入口函数,执行到这个函数的时候判断过期时间,这个函数会有个参数,是缓存时间.如果有缓存文件且没过期,就显示缓存的内容,如果过期了或者不存在,就继续执行页面,把最后的执行结果缓存成一个文件. 我这个可以用filemtime判断是不是可以.
发表于 2010-4-29 19:44:50 | 显示全部楼层
CI 的缓存实际上是个抄近道的功能,只经过路由,不经过后面的环节,所以性能提高很大。
发表于 2010-4-29 21:23:03 | 显示全部楼层
哦  我是要在我自己的一个项目里面写了一个缓存功能  参考了一下ci 的, 不过我的是在页面上有一个缓存的入 ...
waterc 发表于 2010-4-29 15:17
这样效率比ci原始缓存低哦,
因为要多加载好几个class(有个比较大的CI_Input),还包括你的控制器
ci默认缓存只要命中,不会加载后面的class和控制器,资源消耗少多了

本版积分规则