2012-10-05 58 views
24

在Joomla的Global Config中有2個緩存是保守的和漸進的,兩者有什麼區別?joomla 2.5中保守緩存和漸進緩存有什麼區別?

+3

這裏是關於Joomla中全局配置緩存的不錯文章。點擊下面的鏈接來查看。 http://www.inmotionhosting.com/support/edu/joomla-25/caching/global-module-caching – Toretto

+0

這說明它更好,更快 - http://www.itoctopus.com/why-progressive-caching-in在大多數情況下,應避免使用joomla,但上面的文章通過實驗備份了答案。如果你有時間閱讀兩個,如果你需要一個快速,很好的答案,請閱讀這一個:) – pathfinder

回答

11

對於每個訪客唯一緩存

  • 保守緩存顯示所有的遊客到您的網站完全相同的緩存內容。

  • 漸進式高速緩存但是會爲每個用戶唯一地緩存內容。

由@龍捲風的評論

30

保守緩存倘若link是標準型緩存。以下是它的工作原理:

  • 訪問者訪問您網站上的頁面。

  • Joomla檢查其緩存目錄中是否存在該頁面的非過期版本。

  • 如果緩存頁面存在(並且沒有過期),那麼Joomla會將其提供給訪問者 - 否則,創建頁面的緩存版本,並且該緩存版本將被提供給訪問者,並且每個其他隨之而來的訪問者,只要它(通過「它」我們指的是頁面)沒有過期。

上面的場景是典型的,大多數開發人員如何實現 緩存。

漸進式緩存工作方式如下:

  • 訪問者訪問您網站上的網頁。

  • Joomla檢查該頁面的緩存版本是否存在,並且該頁面尚未過期。

  • 如果該緩存頁面存在,那麼它將被提供給訪問者,否則,Joomla將爲該特定訪問者創建緩存頁面,然後將其提供給他。

  • 如果一位來訪者(誰從未在該網頁)訪問該頁面,那麼的Joomla將不會爲緩存的頁面之前的訪客,相反,它會創建一個頁面的緩存版本
    專爲用戶,然後將其提供給他。

正如你可以看到,如果同一訪問者訪問 一生的頁面的緩存版本在同一頁面漸進式緩存僅提供了一套性能 改善。在大多數情況下, 漸進式緩存會導致巨大的性能下降,遠遠低於禁用緩存的 ,這是因爲幾乎每次訪問都需要Joomla處理請求,創建 頁面的緩存版本,然後服務於頁面發送給訪問者(而不是僅在 處理請求並在禁用緩存的 的情況下爲頁面提供服務)。哦,並且不要忘記Joomla生成的所有緩存文件 - 如果你有一個高流量的新聞網站 (它有很多頁面),你只能想象這些文件中有多少你 將在你的緩存文件夾中。

現在你可能會想知道,在哪種情況下漸進式緩存 有用?那麼,想象你有一個視頻網站(類似於 youtube)。您希望根據他的位置和/或瀏覽器設置和/或插件安裝,顯示每個訪客自定義頁面。因此,對於訪問者加載的每個頁面 ,可以使用此信息生成該頁面的定製版本並將其緩存。如果 訪問者再次訪問同一頁面,則Joomla不需要重做 工作來生成自定義頁面。

當然,也有許多情況下其下漸進式緩存是 真正有用的,但在我們看來,漸進式緩存只應 如果網站收到許多遊客認爲,如果這些遊客 大多是回頭客。在其他情況下使用它會導致網站性能的重大影響。

here中提取。

+1

我不能更強調「性能打擊」漸進式緩存!我有一個很多返回用戶的繁忙網站,並認爲漸進式緩存將是您的選擇。但它最終窒息了我的網站。服務器RAM使用率增加,CPU使用率增加,頁面啓動需要1分鐘才能加載!發生了惡夢。一旦我禁用緩存,頁面在3秒內加載。從那以後,我從不使用緩存,只爲會話處理程序使用memcache! – Neel

1

漸進式緩存的工作方式與保守型緩存類似,區別在於緩衝區逐步更新。

如果您查看JApplicationCMS中的渲染函數(設置漸進式緩存),您會發現它不適用於登錄用戶。 https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/application/cms.php

if ($this->isSite() && $this->get('caching') && $this->get('caching', 2) == 2 && !JFactory::getUser()->get('id')) 
    { 
     $caching = true; 
    } 

而且,如果你轉儲緩存ID對在同一頁的瀏覽器或IPS,你會得到相同的緩存ID的。

漸進式緩存的典型工作發生在JCache的getWorkarounds和setWorkarounds中。但是要小心,cbuffers有時會變得笨重,有時會導致問題。

相關問題