Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php joomla 2.5中的保守缓存和渐进缓存有什么区别?_Php_Joomla_Joomla2.5_Joomla3.0_Joomla3.1 - Fatal编程技术网

Php joomla 2.5中的保守缓存和渐进缓存有什么区别?

Php joomla 2.5中的保守缓存和渐进缓存有什么区别?,php,joomla,joomla2.5,joomla3.0,joomla3.1,Php,Joomla,Joomla2.5,Joomla3.0,Joomla3.1,在joomla的全局配置中,have 2缓存是保守的和渐进的,两者的区别是什么?对于每个访问者的唯一缓存 保守缓存向站点的所有访问者显示完全相同的缓存内容 渐进式缓存但是,为每个用户唯一地缓存内容 根据@Tornado的评论提供的 保守缓存是标准的缓存类型。下面是它的工作原理: 访问者访问您网站上的某个页面 Joomla检查其缓存目录中是否有该页面的未过期版本 如果缓存的页面存在(并且没有过期),那么Joomla将向访问者提供该页面——否则,将创建页面的缓存版本,并且该缓存版本将提供给访问

在joomla的全局配置中,have 2缓存是保守的和渐进的,两者的区别是什么?

对于每个访问者的唯一缓存

  • 保守缓存向站点的所有访问者显示完全相同的缓存内容

  • 渐进式缓存但是,为每个用户唯一地缓存内容

根据@Tornado的评论提供的

保守缓存是标准的缓存类型。下面是它的工作原理:

  • 访问者访问您网站上的某个页面

  • Joomla检查其缓存目录中是否有该页面的未过期版本

  • 如果缓存的页面存在(并且没有过期),那么Joomla将向访问者提供该页面——否则,将创建页面的缓存版本,并且该缓存版本将提供给访问者以及所有其他后续访问者,只要该页面(我们指的是页面)没有过期
上述场景是典型的,也是大多数开发人员实现的方式 缓存

渐进式缓存的工作方式如下:

  • 访问者访问您网站上的某个页面

  • Joomla检查该访问者是否存在该页面的缓存版本,并且该版本尚未过期

  • 如果该缓存页面存在,那么它将被提供给访问者,否则,Joomla将为该特定访问者创建缓存页面,然后提供给他

  • 如果另一个访问者(从未访问过该页面)访问该页面,那么Joomla将不提供前一个访问者的缓存页面,而是创建该页面的缓存版本
    专门针对该用户,然后将其提供给他

正如您所看到的,渐进式缓存只提供了一种性能 如果同一访问者访问同一页面,则改进 页的缓存版本的生存期。在大多数情况下, 渐进式缓存会对性能造成巨大的影响,这远远不够 比禁用缓存更糟糕,因为几乎每次访问, Joomla必须处理请求,创建 页面,然后将页面提供给访问者(而不仅仅是 在以下场景中处理请求并为页面提供服务: 缓存已禁用)。哦,别忘了所有的缓存文件 由Joomla生成–您只能想象您需要多少这些文件 如果你有一个高流量的新闻网站,你的缓存文件夹中将有 (有很多页)

现在您可能想知道,在什么情况下是渐进式缓存 有用吗?好吧,假设你有一个视频网站(类似于 youtube)。您希望根据每个访问者的自定义页面显示这些页面 安装的位置和/或浏览器设置和/或插件。那么,为了 访问者加载的每个页面都使用此信息 生成该页面的自定义版本并缓存它。如果 访问者再次访问同一页面,Joomla就不需要重做了 生成自定义页面的工作

当然,在许多情况下,渐进式缓存是非常重要的 确实有用,但在我们看来,渐进式缓存只应该 考虑网站是否接待了许多访问者,以及这些访问者 他们大多是回头客。在其他情况下使用它会导致 对网站性能的重大影响


从中提取。

渐进式缓存的工作原理与保守式缓存的工作原理相同,不同之处在于缓冲区是渐进式更新的

如果查看JApplicationCMS(其中设置了渐进式缓存)中的render函数,您会发现它不适用于登录的用户。

此外,如果您跨浏览器或IP转储同一页面的缓存id,您将获得相同的缓存id


渐进式缓存的典型工作发生在JCache的getWorkarounds和setWorkarounds中。但是,请注意,cbuffer有时会变得笨重,导致问题。

这是一篇关于Joomla中全局配置缓存的好文章。点击下面的链接查看。这说明它更好更快,但是上面的文章用实验来支持答案。如果你有时间读这两个,如果你需要一个快速,好的答案,读这一个:)我不能更强调“性能命中”渐进缓存!我有一个繁忙的网站,有很多回头客,我认为渐进式缓存将是我的选择。但它最终阻塞了我的网站。服务器RAM使用率急剧上升,CPU使用率增加,页面加载时间开始超过1分钟!有一次噩梦般的发射。我一禁用缓存,页面就会在3秒内加载。从那以后,我就不再使用缓存,只对会话处理程序使用memcache!
if ($this->isSite() && $this->get('caching') && $this->get('caching', 2) == 2 && !JFactory::getUser()->get('id'))
    {
        $caching = true;
    }