YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Traditional subtitles

← 03-13 Container_Performance

03-13 Container_Performance

Get Embed Code
13 Languages

Showing Revision 2 created 01/04/2016 by QA_SP_6_ZH_TR.

  1. 到目前為止我們已經談論了
    你的代碼會如何
  2. 因為運行的硬體而變慢
  3. 還記得那個浮點分支的問題嗎
  4. 雖然這對於現今的硬體都幾乎不是個問題
  5. 但還是有一組問題你需要擔心
    那就是
  6. 你正在使用的語言中原語的效能
  7. 以一個基礎的演算法
    比如排序做說明
  8. 有很多種方式可以進行排序的動作
  9. 在某些情況下
    某些會比另外一些更好
  10. 舉例來說 quicksort在一般情況下會比
  11. bubble sort更快
    但若你有少於一千個元素則不然
  12. 或在一個大的排序列表中搜尋時
  13. 通常情況下 最好的方法是用二進制搜尋
  14. 但在未排序的數組中尋找物件
    則完全不同
  15. 在這裡 比起比較每個物件
    來尋找你要的值
  16. 利用哈希函數你可以馬上找到
  17. 這些都是現代電腦科學
    與數據結構的基本教規
  18. 還有令人慶幸的是 如Java等現代語言
    都幫你支援這些容器以及演算法
  19. 所以你就不需要一遍又一遍的
    一直重複寫Murmur
  20. 3 哈希函數或quicksort
  21. 但讓我也在這裡透露一件事
  22. 在我多年的編碼經驗中
  23. 一個持續吃掉你的項目的效能
  24. 就是與那些語言提供容器物件的
    效能有關
  25. 這很棒 不是嗎
  26. Java提供你一個
    可以讓你覺得在適當的地方
  27. 以推 彈 加入和刪除等矢量類的實現
  28. 但為了要能夠實現那種靈活性
    在引擎蓋下它必須用一個連結的列表結構
  29. 且它具有一套獨特的效能特性
  30. 只要你在上列表上的前端上作業
    它就會超極快
  31. 但若你嘗試在其他地方加入或移除
  32. 它會預設為最差的時間
  33. 重點是就算這些底層系統提供了容器
  34. 這也不代表著你的程序
  35. 會以高效能的方式使用它們
  36. James Sutherland在Java框架內所提供的
  37. 特定數據結構的效能上制定了
    一系列的微基準
  38. 並發現了人們應該要知道效能與
  39. 功能性有著差異
  40. 舉例來說
    他發現了Hashtable效能
  41. 要比HashMap效能快上22%
  42. 與你如何使用容器有關
  43. 重點是
  44. 你有分析了你使用在
    你的代碼中的容器類了嗎
  45. 你確定你的代碼實際在做的事情
  46. 是使用了最快的容器嗎
  47. 對 我也不這麼認為
  48. 但好消息是你可以用安卓中好用的分析MPI
  49. 來窺探這些容器的效能
  50. 我們一起來看看克里斯的編碼能
    不能通過我們的檢測