Vietnamese subtitles

← 03-04 Batching_and_Caching

03-04 Batching_and_Caching

Get Embed Code
13 Languages

Showing Revision 3 created 01/25/2016 by QA_SP_5_VI.

  1. Tôi muốn giới thiệu các bạn
    hai kỹ thuật hiệu năng tôi ưng ý,
  2. định lô và lưu bộ nhớ đệm.
  3. Như từng nói qua, một vài hàm
  4. hay thao tác hàm
    phát sinh định mức chi phí,
  5. khác hẳn chi phí vận hành thực tế
    của chính thao tác hàm đó.
  6. Ví dụ, khi tải dữ liệu qua vị trí mới
    trong bộ nhớ trước khi thực thi,
  7. hay sắp xếp bộ giá trị
    trước khi rà soát tập hợp.
  8. Khi dữ liệu thực thi nhiều lần,
    và khi bội số lần thực thi cao,
  9. chi phí này trở thành gánh nặng
    hiệu suất cho ứng dụng của bạn.
  10. Định lô là quy trình khắc phục
    sự cố vận hành này,
  11. bằng cách cắt chi phí
    thực thi từng hoạt động này,
  12. giống như đi chung xe thay vì
    lái xe riêng, để tiết kiệm xăng.
  13. Định lô thường gặp trong bộ mã
    khi cần chuẩn bị dữ liệu
  14. trước thực thi.
  15. Ví dụ, cách hữu hiệu nhất để tìm giá trị
  16. trong tập hợp là phân loại,
    rồi tìm kiếm nhị phân.
  17. Khoan, để nói rõ hơn, thực ra
    đây không phải cách hiệu quả nhất.
  18. khoan nhé,chờ tôi chút,
    tôi đang cố giải thích.,
  19. Cách đơn giản nhất để thực hiện là viết
    một hàm bằng tập hợp và giá trị cho sẵn,
  20. nó sẽ phân loại rồi kiểm tra
    xem giá trị có ở trong tập hợp không.
  21. Thao tác này có thể hữu hiệu
    ở vài mức độ vận hành
  22. nhưng nếu bạn có, ví dụ,
    10.000 giá trị cần kiểm tra,
  23. tập hợp lên tới vài triệu phần tử.
  24. Tự khắc phát sinh nhiều chi phí
    để kiểm tra từng cái một
  25. theo phân loại này.
  26. Đáp án ở đây khá rõ ràng.
  27. Ta sẽ tạo bản sao đã phân loại
    của tập hợp một lần,
  28. rồi kiểm tra 10,000 giá trị
    cần đưa vào trong tập hợp.
  29. Đó là cách định lô.
  30. Loại bớt thao tác lặp lại,
    chỉ thao tác một lần thôi.
  31. Tương tự là khái niệm
    lưu trữ bộ nhớ đệm,
  32. và cho đến nay, đây là kỹ thuật hiệu năng
    quan trọng nhất bạn cần biết,
  33. vì nó chi phối mọi hoạt động
    trong công nghệ điện toán hiện đại.
  34. Lấy ví dụ máy tính của bạn.
  35. Điểm mấu chốt của bộ nhớ RAM
    là làm trạm lưu trữ thông tin
  36. cho CPU lấy dữ liệu nhanh hơn,
    so với khi lấy từ ổ cứng.
  37. Một ví dụ khác là mạng xã hội,
    cũng như mạng internet hiện nay,
  38. có các kho máy chủ khổng lồ
    là trung tâm dữ liệu khắp thế giới.
  39. Mục đích duy nhất là lưu trữ
    bộ nhớ đệm nội dung thường truy cập.
  40. sao cho máy tính không cần tìm
    máy chủ ở xa cách 12.000 dặm.
  41. mỗi khi bạn của bạn ở Ai Cập đăng ảnh.
  42. Trừ phi bạn đang ở Ai Cập,
    tuy nhiên, bạn hiểu vấn đề rồi.
  43. Trong bộ mã, thường thì có thể
    tìm được kỹ thuật tối ưu hóa
  44. lưu trữ bộ nhớ đệm khi xử lý
    nhóm dữ liệu cần nhiều lần đếm,
  45. nhưng kết quả cho ra luôn giống nhau.
  46. Ví dụ, trong một vòng lặp
    đang được tính toán,
  47. đạo hàm ma trận 4x4,
  48. kết quả luôn tương đồng,
    nên bạn sẽ lãng phí hiệu suất,
  49. nếu tính toán lặp lại chỉ số này
    ở đầu mỗi bước lặp.
  50. Thay vì vậy, tính toán và lưu
    kết quả đạo hàm ngoài vòng lặp một lần,
  51. rồi nội hàm tham chiếu vòng lặp
    sẽ lưu trữ bộ nhớ đệm kết quả.
  52. Tôi thích định lô và lưu bộ nhớ đệm
    vì khả năng cải thiện hiệu suất
  53. tốt vô cùng của chúng.
  54. Những kỹ thuật đang nói đến
    trong khóa học này,
  55. chẳng qua là biển thể của
    hai kỹ thuật cơ bản này.
  56. Nếu bạn nghiêm túc muốn thành
    siêu nhân về quản lý hiệu năng,
  57. thì bạn nên chuyên nghiệp hơn
    về kỹ thuật thúc đẩy hiệu năng
  58. bằng cách sử dụng
    hai kỹ thuật rất mạnh này.
  59. Nào, bắt đầu thôi.