作者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