CK插件之数据缓存:实现类似smarty的静态数据缓存

插件开发及发布

版主: woniou

头像
muchun
帖子: 734
注册时间: 2011年 11月 24日 10:39

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 muchun »

@captainkoo 你也是高手啊,相信以后会有更多好得作品
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

@captainkoo
能不能给个方便的比如数据查询,载入页面耗时等代码?我想对比一下使用与未使用的情况。
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

反应个问题,如果文章有分页,显示的都是第一页的内容,点击下一页,都没用。。。。
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@mybg 刚刚写了一个插件,名为《执行时间统计插件》。测试有缓存与没有缓存之间的差别。测试了多个页面,根据页面的不同,大概得出这样一组数据:开缓存,页面执行时间一般在3-5毫秒,不开一般在280-350毫秒。sql查询次数,由于不同人使用的插件数量不一样,所以不能一概而论,我自己的测试环境只装了一个views统计插件,还有用来统计页面执行时间本身这个插件,然后就是开缓存恒定控制在33次,所有缓存了的页面都是33次,关了缓存插件后,不同页面执行次数不一样,最少118次,最多143次。
重申,不同人因安装插件不同,使用模板不同会得出不一样的测试结果,但可以肯定的是缓存插件在执行时间和sql查询次数上占优。然而,这些都是毫秒级别的差异,正常人类没有感觉的。

有兴趣测试的童鞋可以安装以下插件(见附件)。

由于缓存插件在找到缓存的情况下会终止后续的程序运行,所以针对二楼的缓存插件进行测试的话,就得在该缓存插件的文件中加两行代码做测试,完了可以删掉。
usr/plugins/Cache/Plugin.php 文件
在127行 global $db,$noCache;下面加一行
ExecuteTimer_Plugin::begin();
然后在155行if($config->cacheTester) 。。。。。下面加一行
ExecuteTimer_Plugin::end();

注意,必须是先安装了执行时间统计插件(即下面附件插件)后才能加上面两行,否则会报错。

测试完了可以反过顺序来,先删掉上面所加的两行,然后再禁用执行时间统计插件。
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@mybg 不好意思,忽略了文章分页这个情况。因为我自己没有使用过文章分页,不好测试。您能给个有分页的文章看看?
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

这里有篇分页的文章,http://weburls.net/archives/294.html
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

抱歉,请使用插件的童鞋不要在慢客部落中提插件相关的问题,因为想保持博客的纯粹性。插件问题还是在论坛这里讨论好些。谢谢支持呀
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

@mybg 文章分页问题已经知道问题所在了。可以简单地修改一下即可,但是针对这种个案有一个解决一个始终不是办法,我在想能不能一次搞定所有类似的情况。。。
captainkoo
帖子: 20
注册时间: 2010年 6月 24日 05:31
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 captainkoo »

文章分页插件是在原有页面url的后面添加了?pagecontent=2这样的请求参数,一种笼统的解决办法是,把usr/plugins/Cache/Plugin.php 文件77行的“ html$'=>'独立页 ”中的那个 $ 符号删掉即可。这样可以兼顾了选择abc-efg-ddd.html这种博客url形式的童鞋的几乎所有页面的缓存。。。
mybg
帖子: 508
注册时间: 2010年 5月 27日 16:20
联系:

Re: CK插件之数据缓存:实现类似smarty的静态数据缓存

帖子 mybg »

页面执行耗时:427.8毫秒。Mysql数据查询:214次
页面执行耗时:3.1毫秒。Mysql数据查询:34次

用了插件后差别这么大?

翻页还是无效。。。
回复