Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[Rikkeisoft] Tư duy caching trong lập trình web

704 views

Published on

[Rikkeisoft] Tư duy caching trong lập trình web
Seminar 20140827 - OanhNN & KhangDQ

Published in: Software
  • Be the first to comment

[Rikkeisoft] Tư duy caching trong lập trình web

  1. 1. TƯ DUY CACHING TRONG LẬP TRÌNH WEB
  2. 2. NỘI DUNG • Tư duy caching là gì? • Ứng dụng của caching • Vấn đề về caching
  3. 3. CACHE LÀ GÌ? • Bộ nhớ đệm • Cơ chế lưu trữ và truy cập tốc độ cao  Tăng tốc xử lý  Tăng tốc hệ thống  Hệ thống đạt gần như “realtime”
  4. 4. TƯ DUY CACHING LÀ GÌ? • Thay quá trình xử lý tốn thời gian bằng kết quả đã có • Sử dụng bộ nhớ tốc độ cao hơn để tăng tốc hệ thống
  5. 5. ỨNG DỤNG 1: QUẢN LÝ TÀI NGUYÊN TĨNH • Tải các tài nguyên mất thời gian • Nội dung các tài nguyên ít thay đổi  Tại sao không lưu lại để lần sau dùng?  Caching tài nguyên vào vùng nhớ đệm của trình duyệt
  6. 6. ỨNG DỤNG 2: TÁI SỬ DỤNG KẾT QUẢ • Một xử lý tốn thời gian: ∆𝒕 • Một request cần 𝑛 xử lý giống nhau  Cần thời gian: 𝐧∆𝒕 • Nếu lưu lại kết quả cho lần sau  Cần thời gian: ∆𝒕
  7. 7. ỨNG DỤNG 3: LIVE DATABASE • Tốc độ bộ truy cập bộ nhớ: L1 > L2 > L3 > RAM > HDD • Database thường được lưu trên HDD  Chậm  Tại sao không lưu trên RAM hay trên Cache L3, L2, L1 ???  Live Database
  8. 8. VẤN ĐỀ 1: TỈ LỆ CACHE HIT 𝒏 , 𝒎 : Số lần tìm thấy và không tìm thấy trong cache 𝑻 𝟏, 𝑻 𝟐: Thời gian thực hiện khi thấy và không thấy cache  Thời gian trung bình: 𝑻 𝒕𝒃 = 𝒏𝑻 𝟏 + 𝒎𝑻 𝟐 𝒏 + 𝒎 = 𝒏 𝒏 + 𝒎 𝑻 𝟏 + 𝟏 − 𝒏 𝒏 + 𝒎 𝑻 𝟐  Do 𝑻 𝟏 ≪ 𝑻 𝟐 nên để 𝑻 𝒕𝒃 ≪ 𝑻 𝟐 thì 𝜶 = 𝒏 𝒏 + 𝒎 ≈ 𝟏  Làm thế nào để dự đoán tỉ lệ cache hit?
  9. 9. VẤN ĐỀ 2: ĐỒNG BỘ DỮ LIỆU • Làm thế nào để biết dữ liệu thay đổi? • Cập nhật cache khi nào?  Ngay sau khi dữ liệu thay đổi  Khi cần đến dữ liệu
  10. 10. VẤN ĐỀ 3: DUNG LƯỢNG BỘ NHỚ • Bộ nhớ HDD 1TG, RAM 32GB, L3 16MB, L2 2M, L1 512KB • Truy cập là duyệt địa chỉ nhớ  Dung lượng càng lớn thì chàng chậm • Bộ nhớ có hạn, cái gì cũng muốn lưu, vậy phải làm sao?  Xử lý cục bộ (lazy load, …)  Chọn lọc và giải phóng dữ liệu
  11. 11. TỔNG KẾT • Bạn đã hiểu tư duy caching là như thế nào? • Ứng dụng khác của caching • Vấn đề quan trọng nhất bây giờ với caching
  12. 12. THANKYOU !

×