Chinese, Simplified subtitles

← 03-04 Batching_and_Caching

03-04 Batching_and_Caching

Get Embed Code
13 Languages

Showing Revision 6 created 02/12/2016 by sp8.

  1. 我想向你们介绍我最喜欢的两个性能技术
  2. 批处理(batching)和缓存(caching)。
  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. 让CPU能够更快地访问数据,
    其速度远快于访问硬盘数据。
  37. 或者以网络为例,
  38. 世界各地存在大型服务器仓库,
    它们被称为数据中心。
  39. 它们的作用是存储或缓冲被频繁访问的内容。
  40. 这样,你的计算机就不必
    每次都访问远在12,000英里之外的服务器。
  41. 你在埃及的朋友可能在这个服务器上发布了一张图片。
  42. 当然,你知道,如果你在埃及,
    这样的缓存服务器可能就没有什么意义。
  43. 但是你已经明白其中的道理。
    以代码为例,
  44. 最常见的缓存优化通常涉及多次计算。
  45. 但是结果始终相同的数据,
  46. 例如,在循环计算中,
  47. 你计算一个4x4数列的导数,
  48. 结算始终是相同的,
    每次重新计算循环迭代,
  49. 实际是在浪费计算机资源,
  50. 相反,在循环流程的外部存储导数的结果,
  51. 并让你的内部循环语句引用缓存结果,
    可以极大地提升效率。
  52. 我之所以喜爱缓存和批处理,
  53. 是因为它们能够改善所有你能够想到的性能问题,
  54. 包括我们在本课程中提到的问题,
  55. 这是两个非常有效的技术。
  56. 如果你想成为一名性能专家,
  57. 你最好能够熟练掌握这两项强大的技术。
  58. 让我们开始。