Chinese, Traditional subtitles

← 03-04 Batching_and_Caching

03-04 Batching_and_Caching

Get Embed Code
13 Languages

Showing Revision 1 created 12/28/2015 by sp8.

  1. 我想向你介紹
    我最喜歡的兩個效能技巧
  2. 分批與緩存
  3. 如同我們已經談過的
    有些函數或
  4. 作業有著一個與作業本身的效能成本
    不同的特定數量的
  5. 開銷包含在它們裡面
  6. 舉例來說 在執行一個數據之前
    加載它到記憶體中一個新的地方
  7. 或者在搜索一組數據前
    先行進行排序
  8. 在執行數次之後
    這裡的數次指的是一個很大的數字
  9. 這個額外的開銷會對你的應用程式成為一個
    很大的效能負擔
  10. 分批是一個改善這項效能問題的過程
  11. 藉著減少這些作業每次作業的開銷
  12. 類似於藉著共乘一台車而非每個人都
    自行開車 可以達到省油的效果
  13. 這最經常出現在你的代碼中
    當你在操作之前
  14. 需要先行準備你的數據
  15. 舉例來說 我們假設在一組數據中
    最有效的尋找方法是藉著排序
  16. 然後執行一個二進制搜尋
  17. 等等 先說明
    這並不是實際上最有效的方法
  18. 但還是聽我講完
    我在嘗試闡述一個重點
  19. 不論如何 做這件事最簡單的方法就是
    在有一組以及一個值的情況下
  20. 寫出一個排序並搜尋以確認
  21. 該值是否存在的函數
  22. 這可能對某些效能等級是沒問題的
  23. 但若你有10,000個值你想測試
  24. 並且有數百萬組的情況下
  25. 忽然之間 你的每個測試
    都在以排序的方式
  26. 承擔著很多的開銷
  27. 這裡的答案淺而易顯
  28. 你將會想要建立一組排序過的版本
  29. 然後能夠將10,000個值都能包含在測試之內
  30. 這就是分批的行為
  31. 我們將重複進行的作業分解出來
    並一次完成
  32. 跟這很像的還有一個概念叫緩衝
  33. 而且這是到目前為止你所能理解的
    最重要的技巧
  34. 最主要的原因是因為它是藉著
    現代電腦科技驅動一切
  35. 用你的電腦舉例來說
  36. 你的RAM的存在意義就是為了提供一個地方儲存資訊
  37. 並能讓CPU比硬碟更快的讀取該資料
  38. 或者以網路來說
    看看現代網路本身
  39. 世界各地都存在著稱呼為數據中心的
    巨型伺服器倉庫
  40. 它們的唯一目的是在儲存
    或緩衝經常讀取的內容
  41. 讓你的電腦不用因為你的朋友
    每張貼一張照片
  42. 就必須每次訪問12,000英里遠的伺服器
  43. 當然 除非你就在埃及的話啦
    但你懂我的意思的
  44. 現在在你的代碼中
    你最常能找到為緩衝進行優化的地方
  45. 是在必須計算過數次
    t
  46. 但結果每次都相同的數據中
  47. 舉例來說
  48. 你在一個計算四乘四矩陣的衍生物的迴圈中
  49. 並且結果永遠是相同的
    在該循環的每次迭代都重新計算它
  50. 那實際上你就是在浪費效能
  51. 取而代之的是
    在迴圈外計算並儲存該衍生物的結果
  52. 並讓你的迴圈的內部參考該緩衝結果
  53. 我這麼愛分批以及緩衝的原因是
  54. 因為幾乎你所能想到的效能進步方法
  55. 包含我們在這個課程中所提到的
  56. 都是這兩個基礎技巧的延伸
  57. 而且如果你是認真的想要成為一位效能達人
  58. 那你最好能夠將這些技巧的運用
  59. 極大化
  60. 那麼 就讓我們開始吧