2012-10-05 39 views
24

Trong cấu hình toàn cầu trong Joomla có 2 bộ nhớ đệm là bảo thủ và tiến bộ, sự khác biệt là gì cả hai?Sự khác biệt giữa bộ nhớ đệm bảo thủ và bộ đệm ẩn tiến bộ trong joomla 2.5 là gì?

+3

Đây là bài viết hay về Global Config-caching trong Joomla. nhấp vào liên kết bên dưới để xem. http://www.inmotionhosting.com/support/edu/joomla-25/caching/global-module-caching – Toretto

+0

điều này nói nó tốt hơn và nhanh hơn - http://www.itoctopus.com/why-progressive-caching-in -joomla-nên-được-tránh-trong-hầu hết các trường hợp nhưng các bài viết trên sao lưu các câu trả lời với thử nghiệm. Nếu bạn có thời gian đọc cả hai, nếu bạn cần một câu trả lời nhanh, tốt, hãy đọc câu trả lời này :) – pathfinder

Trả lời

11

Đối bộ nhớ cache duy nhất mỗi khách truy cập

  • Bảo thủ bộ nhớ cache cho thấy tất cả du khách đến trang web của bạn cùng một nội dung được lưu trữ chính xác.

  • Bộ nhớ đệm liên tục tuy nhiên lưu trữ nội dung cho từng người dùng một cách duy nhất.

Từ link Được cung cấp bởi @ bình luận Tornado của

30

Bảo thủ bộ nhớ đệm là loại tiêu chuẩn của bộ nhớ đệm. Dưới đây là cách hoạt động:

  • Khách truy cập truy cập trang trên trang web của bạn.

  • Kiểm tra Joomla nếu có phiên bản trang không hết hạn trong thư mục bộ nhớ cache của nó.

  • Nếu trang được lưu trong bộ nhớ cache tồn tại (và nó không hết hạn), thì Joomla sẽ phân phát nó cho khách truy cập - nếu không, phiên bản được lưu trong bộ nhớ cache của trang được tạo và phiên bản được lưu trong bộ nhớ cache sẽ được phân phát cho khách truy cập. khách truy cập hậu quả khác, miễn là nó (bởi "nó" chúng tôi có nghĩa là trang) không hết hạn.

Kịch bản trên là điển hình và cách hầu hết các nhà phát triển triển khai lưu vào bộ nhớ cache.

bộ nhớ đệm Progressive hoạt động theo cách sau:

  • Một khách thăm một trang trên website của bạn.

  • Kiểm tra Joomla nếu phiên bản được lưu trong bộ nhớ cache của trang đó tồn tại cho khách truy cập đó và chưa hết hạn.

  • Nếu trang được lưu trong bộ nhớ cache đó tồn tại, thì trang đó sẽ được phân phát cho khách truy cập, nếu không, Joomla sẽ tạo trang được lưu trong bộ nhớ cache cho khách truy cập cụ thể đó và sau đó sẽ phân phát cho người đó.

  • Nếu một khách truy cập (người chưa bao giờ được trên trang đó) thăm trang đó, sau đó Joomla sẽ không phục vụ cho trang lưu trữ của khách truy cập trước đó, thay vào đó, nó sẽ tạo ra một phiên bản cache của trang đó
    đặc biệt cho rằng người dùng, và sau đó phục vụ nó cho anh ta.

Như bạn có thể thấy, bộ nhớ đệm tiến bộ chỉ cung cấp một hiệu suất cải thiện nếu người truy cập cùng truy cập vào trang cùng trong đời của phiên bản cache của trang.Trong hầu hết các trường hợp, kết quả bộ nhớ đệm tiến bộ trong một lần truy cập hiệu suất lớn hơn nhiều so với tắt bộ nhớ cache, đơn giản vì gần như mọi lần truy cập, Joomla phải xử lý yêu cầu, tạo phiên bản được lưu trong bộ nhớ cache của trang và sau đó phân phát trang cho khách truy cập (thay vì chỉ xử lý yêu cầu và phân phát trang trong trường hợp bộ nhớ cache bị tắt). Ồ, đừng quên tất cả các tệp bộ nhớ cache được tạo bởi Joomla - bạn chỉ có thể tưởng tượng số lượng tệp này mà bạn sẽ có trong thư mục bộ nhớ cache nếu bạn có trang web tin tức giao thông cao (có nhiều trang).

Bây giờ bạn có thể tự hỏi, trong trường hợp nào là bộ nhớ đệm tiến bộ có ích không? Hãy tưởng tượng rằng bạn có một trang web video (tương tự như youtube). Bạn muốn hiển thị từng trang tùy chỉnh của khách truy cập dựa trên cài đặt vị trí và/hoặc cài đặt trình duyệt và/hoặc trình cài đặt của mình trên . Vì vậy, đối với mỗi trang mà khách truy cập tải, bạn sử dụng thông tin này để tạo phiên bản tùy chỉnh của trang đó và bạn lưu nó vào. Nếu khách truy cập truy cập lại cùng một trang đó, thì Joomla không cần phải làm lại công việc để tạo trang tùy chỉnh.

Tất nhiên, có rất nhiều kịch bản, theo đó bộ nhớ đệm cấp tiến là thực sự hữu ích, nhưng theo ý kiến ​​của chúng tôi, bộ nhớ đệm tiến bộ nên chỉ được coi nếu trang web nhận được nhiều du khách và nếu những khách chủ yếu lặp lại khách. Sử dụng nó trong các trường hợp khác sẽ gây ra một cú đánh đáng kể về hiệu suất của trang web .

Trích xuất từ ​​here.

+1

Tôi không thể nhấn mạnh thêm vào bộ đệm tiến bộ "hiệu suất đạt"! Tôi có một trang web bận rộn với rất nhiều người dùng cũ và bộ nhớ cache tiến bộ sẽ là lựa chọn. Nhưng nó đã kết thúc nghẹt thở trang web của tôi. Việc sử dụng RAM máy chủ tăng vọt, mức sử dụng CPU tăng và trang bắt đầu mất thêm 1 phút để tải! Đã có một cơn ác mộng khởi động. Ngay sau khi tôi tắt bộ nhớ cache, trang được tải trong 3 giây. Kể từ đó, tôi không bao giờ sử dụng bộ nhớ đệm và chỉ sử dụng memcache cho các trình xử lý phiên! – Neel

1

Bộ nhớ đệm liên tục hoạt động giống như bộ nhớ đệm bảo thủ với sự khác biệt về bộ đệm được cập nhật dần dần.

Nếu bạn nhìn vào hàm kết xuất trong JApplicationCMS (nơi bộ nhớ đệm tiến bộ được đặt), bạn sẽ thấy rằng nó không áp dụng cho người dùng đã đăng nhập. 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; 
    } 

Hơn nữa nếu bạn đổ của id bộ nhớ cache cho cùng một trang trên các trình duyệt hoặc IPS bạn sẽ nhận được bộ nhớ cache cùng id của.

Công việc điển hình của bộ nhớ đệm tiến bộ xảy ra trong getWorkarounds của JCache và setWorkarounds. Tuy nhiên hãy cẩn thận, cbuffers có thể nhận được khó sử dụng lớn ở lần gây ra vấn đề.

Các vấn đề liên quan