contributed by <TsengWen
>
Makefile
以允許 $ make bench
時,可對 ternary search tree 的實作做出效能評比,涵蓋建立 tst 和 prefix search 的時間,應比照 clz 透過統計模型,取出 95% 信賴區間
--bench
的執行參數,得以在沒有使用者輸入的前題下,對 tst 程式碼進行效能分析,應涵蓋 cpy
和 ref
兩種途徑 (詳情參閱 tst.h
的程式碼註解)TODO
的部分,替換成真正有效的 API 和對應的程式碼,這裡要求你學習分析現有的程式碼並得以擴充test_cpy
和 test_ref
兩種方式 (copy/reference) 的效能,並且針對現代處理器架構,提出效能改善機制tst.h
和 tst.c
為何要 forward declaration 呢?分離介面和實作有何好處呢?這樣的思維又該如何運用於 phonebook 呢?提出想法並且實作tst_traverse_fn
函式,並思考如何運用這個實作,注意到 callback function 的程式開發技巧/模式$ shuf cities.txt -o cities1.txt
使用外部工具時,檢驗過亂數分佈了嗎?是 PRNG,抑或能有更好的分佈呢?
jserv
$ sort -g cities.txt -o cities2.txt
ternary_tree, loaded 259112 words in 0.136866 sec
shuffle, loaded 259112 words in 0.118725 sec
sort, loaded 259112 words in 0.094033 sec
jserv
jserv