Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tư duy caching trong lập trình Web

Tư duy caching trong lập trình Web

Bài serminar về tư duy caching trong lập trình Web để tăng tốc hệ thống

Oanh Nguyen

August 27, 2014
Tweet

More Decks by Oanh Nguyen

Other Decks in Programming

Transcript

  1. NỘI DUNG • Tư duy caching là gì? • Ứng

    dụng của caching • Vấn đề về caching
  2. 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”
  3. 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
  4. Ứ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
  5. Ứ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: ∆
  6. Ứ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
  7. 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?
  8. 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
  9. VẤN ĐỀ 3: DUNG LƯỢNG BỘ NHỚ • Bộ nhớ

    HDD 1TB, 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ì cà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
  10. 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