Try   HackMD

2016q3 Homework1(clz)

contributed by <heathcliffYang>

目標

  • 閱讀重新理解數值
  • 設計實驗,測各個clz程式處理32-bit數值的效能差異

觀察與設計實驗

1. clz.c & clz.h將各個clz函式蒐集

  • iteration (在重新理解數值)
  • binarySearch (在重新理解數值)
  • byteShift (在重新理解數值)
  • recursive
  • harley

2. benchmark_time.c 測試效能

  1. 設計input值:先取5個代表性的數值來測試,視情況再多加入點
  2. 測時間: 考慮到一個程式的效能,時間快是最直觀的。

3. Makefile

4. 理解與修改函式

  1. iteration
    從一半(也就是16-bit)嘗試shift right,檢查shift之後的值是否為零,若為零,則shift right的bit數再減少一半,直至不為零;不為零則繼續利用shift right後的值
  2. binarySearch
  3. byteShift
  4. recursive
  5. harley

效能優化策略

背景知識

Fast