作者aitjcize (瓶子小孩)
看板EE_DSnP
標題[心得] HW5 benchmark
時間Sun Dec 5 22:19:04 2010
為了寫報告所以隨手寫了一個小script,分享給大家XD
http://dl.dropbox.com/u/2992761/hw5_bench.py
Usage: hw5_bench.py [-n reference_index] bin1 bin2 ...
bin bin2 ... : 要測試的執行檔列表
-n reference_index : 多輸出一個對於第reference_index個執行檔normalized的表格
測試的項目包括: insert(), erase(), ++x, --x, pop_front(), pop_back()
測出來的時間是每一個操作跑100000次的結果。
由於(疑似)cmd parser的bug,所以在跑超過一定數量的指令後會segmentation fault.
(用cout大法,試過reference program和自己寫的都會segfault,所以應該是cmd parser
的問題),所以是每一次跑10000個operation跑10個iterations.
所有bin都用相同的測資。由於測資是在每一次測試時生成的,所以不同次間的比較是沒
有意義的。
E.g.
~$ ./hw5_bench.py -n 4 ./adtTest.array ./adtTest.dlist ./adtTest.bst \
ref/adtTest.array ref/adtTest.dlist ref/adtTest.bst
output:
...
=================================== Summary ===================================
* Raw data
Insert ++x --x Erase PopF PopB
8.77 0.06 0.1 7.94 18.45 0.0
14.49 0.11 0.08 13.32 0.02 0.03
1.72 0.06 0.1 1.78 0.02 0.04
8.33 0.11 0.1 7.95 18.49 0.01
18.42 0.15 0.06 19.48 0.03 0.03
1.84 0.21 0.22 1.9 0.04 0.05
* Normalized with reference to ref/adtTest.array
Insert ++x --x Erase PopF PopB
1.05 0.55 1.0 1.0 1.0 0.0
1.74 1.0 0.8 1.68 0.0 3.0
0.21 0.55 1.0 0.22 0.0 4.0
1.0 1.0 1.0 1.0 1.0 1.0
2.21 1.36 0.6 2.45 0.0 3.0
0.22 1.91 2.2 0.24 0.0 5.0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.251.120
1F:推 ric2k1:推! 哇~ DSnP 版高手如雲 12/05 22:21
2F:推 MrOrz: m(_ _)m 12/05 22:51
3F:推 TommyKSHS:(拜 12/05 22:54
4F:推 TommyKSHS:囧 我執行了他 他跟我說 IndexError: list index out of 12/06 00:24
5F:→ TommyKSHS:range ... ?? 這是怎麼一回事 @@ 12/06 00:24
6F:推 TommyKSHS:好像是在 hw5_bench.py:129 crash 的… 12/06 00:31
7F:→ aitjcize:應該是有segfault,所以他抓不到結果 12/06 00:43
8F:→ aitjcize:可以手動執行./adtTest.xxx -f do.tmp 12/06 00:44
9F:→ aitjcize:如果crash的話do.tmp應該還在,跑跑看有沒有segfault吧 12/06 00:44
10F:推 TommyKSHS:我剛剛研究了大大的 code 發現應該是 re.findall 沒找到 12/06 00:52
11F:→ TommyKSHS:要找的東西… 結果手動跑了一下真的是 SEGfault ... 12/06 00:53
12F:→ TommyKSHS:囧 推完文才看到原 PO 的回答 XD 12/06 00:53
13F:→ aitjcize:我加了一行判斷segfault了 12/06 00:54
14F:推 TommyKSHS:囧 我剛剛還是在一樣的地方 crash 可是我手動跑了我的執 12/06 01:08
15F:→ TommyKSHS:行檔發現沒有 SEGfault…但是 len(result) 是 0… 12/06 01:09
16F:推 TommyKSHS:咦 剛剛莫名奇妙重新 compile 後又好了= = 12/06 01:49
※ 編輯: aitjcize 來自: 140.112.251.120 (12/06 09:07)
17F:推 TommyKSHS:剛剛發現執行檔不打 ./ 就會 crash... Orz 12/06 10:19
※ 編輯: aitjcize 來自: 140.112.251.120 (12/06 12:40)
18F:→ aitjcize:已修正 12/06 12:51
19F:推 Knossos:推~~ 12/06 22:04
20F:→ ckmarkoh:上面的推文幾乎都是神與神的對話... 12/06 22:49
21F:推 Bismarck2100:有同感... 12/07 00:35
22F:推 onthesea:有神快拜! 我最近也在研究怎麼用python..... 12/07 01:44
23F:推 cktigeryang:會crash應該是超過max_history_size了 12/15 01:28