contributed by < wangchangchun
>
進度嚴重落後,趕緊追上
課程助教
bananahuang
$perf top -p $pid
已經不會顯示任何資訊,解決方法有兩個,其一就是把執行時間拉長,其二使用$ ./ "執行檔案名稱" & sudo perf top -p $!
電腦規格,偷看了共筆範例才知道原來 "lscpu" 這個指令可以用來看 cpu 資訊…
Architecture: x86_64
CPU 作業模式: 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
每核心執行緒數:2
每通訊端核心數:2
Socket(s): 1
NUMA 節點: 1
供應商識別號: GenuineIntel
CPU 家族: 6
型號: 60
Model name: Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
製程: 3
CPU MHz: 3161.539
CPU max MHz: 3200.0000
CPU min MHz: 800.0000
BogoMIPS: 5187.92
虛擬: VT-x
L1d 快取: 32K
L1i 快取: 32K
L2 快取: 256K
L3 快取: 3072K
NUMA node0 CPU(s): 0-3
–> 看完有看沒有懂,該複習了QAQ
由於不熟悉 git 的用法,再練習使用時不小心改到 master 分支QAQ
老師建議使用git rebase -i
修正
參考資料
在 git 中,每一個 commit 都可以長出 branch ,而 branch 的 base 就是它生長出來的 commit ,rebase 也就是把該 branch 所長出來的 commit 給改去另一個 commit 。
印出 perf 可以觸發哪些 event
拿phonebook來試 perf top
–>好像沒有 overhead 特別重的部份??
進度要加快,perf 練習的部份記得也要放上共筆,因為這不只是給別人看,更是給未來的自己看的歐。亮谷
IMPL –> 不太懂
diff_in_second
: 計算時間,有較高精確度。如果 nsec < 0 跟 sec 借一秒 ——> nsec + 1000000000 , sec - 1assert
若後面的判斷式為 true 則繼續執行,false 的話則停止運作
typedef struct __PHONE_BOOK_ENTRY {
char lastName[MAX_LAST_NAME_SIZE];
char firstName[16];
char email[16];
char phone[10];
char cell[10];
char addr1[16];
char addr2[16];
char city[16];
char state[2];
char zip[5];
struct __PHONE_BOOK_ENTRY *pNext;
} entry;
#define OPT 1
前的註解拿掉,不然不會產生opt.txt
, output.txt 會只有 orig.txt 的資料strcasecmp
: 忽略大小寫 byte-by-byte 比較字串entry *findName(char lastName[], entry *pHead)
: 輸入 lastname 及 電話簿 linklist 的 head, 一一比較字串是否相同entry *append(char lastName[], entry *e)
: 加入新的 lastname 在電話簿的最尾端 –> 不用按照順序排嗎??entry *e
是最後一筆資料將 lastName 以外的資料移出 entry
文字訊息(如:程式碼和輸出結果)直接貼上就好,避免使用圖片
課程助教
時間縮短不少
cache miss 也從 83.672 % 降到 41.381 %
下列結果也請直接複製貼上課程助教
各種hash funtion比較
看完上方網站決定以效能較好的BKDR實作
hw1-1