Joomla如何采用缓存加速你的代码 【转】

来源:互联网 发布:淘宝好店知乎 编辑:程序博客网 时间:2024/04/30 04:39

 

在通常网络环境中,同样的内容会一遍遍的显示。缓存通过把程序生成内容的一部分或者全部保存在文件中,需要的时候取出来,这样就使网站提速。有很多方法可以做到这点,但是本文只是针对函数。在Joomla 1.5中,缓存非常容易。

Typically in web environments, the same content is displayed over and over to everyone who visits your site. Caching can speed this up by storing some or all of the information your code generates in a file and returning it when needed. There are different ways to do this, but this tutorial only deals with functions. The good news is that in Joomla! 1.5 it’s dead simple.

1. 利用 Profiler

当使用缓存的时候,首先必须确认使用缓存是有用。 先用Joomla! profiler (JProfiler) 测试一下。

这段将输出:

0.001 seconds to do stuff

 

再运行一次,你可能看到不同的数字。

 

2. 要测试的函数

我们首先做一个组件文件/components/com_testcache/testcache.php ,这个文件只是用来测试函数执行的时间。

文件的代码如下:

 

 

我们重复执行250次查询,当然现实中不会有这样的代码,但是我们可以看到是否缓存的巨大差异

 

 

3. 缓存对象

首先,要确认你在全局配置设置了允许缓存项。

我们可以通过Jfactory取得缓存对象

 

 

如果你想在组件中获得缓存,即使全局配置没有启用,你也可以通过以下代码启用缓存:

 

 

接下来调用我们的函数

 

 

如果你要缓存一个不是在类中的函数,可以不必使用数组,就如以下的代码

 

 

可以使用以下代码清除缓存

 

 

这将删除缓存目录中的所有缓存的文件和目录。

4. 整合

为了比较,我们将调用两次,一次缓存,一次不缓存,并且我们把两次调用包含在一个profiler中,从而我们可以看清不同。

 

 

现在执行 index.php?option=com_testcache. 结果如下:

2.093 without caching
2.160 with caching

第二个稍慢,刷新页面,结果如下:

2.073 without caching
0.008 with caching

在设置的缓存期限内,这个结果大体如此。

 

 

 

5. 参数使用

上述例子中总是重复调用数据,可是通常情况下,函数输入不同的参数而得到不同的结果,这种情况怎么使用缓存?下面的例子展示了怎么解决这个问题

试着调用时候用不同的表

index.php?option=com_testcache&table=content
index.php?option=com_testcache&table=users
index.php?option=com_testcache&table=menu

你都可以看到第一次调用采用缓存稍微慢一些,第二次以后缓存就要快多了。

6. 实际编程

现实中使用缓存并不总能得到更快的结果。 试着去掉例子中循环,你观察一下运行结果。所以说,确认是否缓存有益是必须的。
同样在编程过程中要考虑缓存是非常必要的。

 

 

 

原创粉丝点击