[心得] Benchmark
MOS6502 模擬器跑 Atari2600 的兩個遊戲所得到的結果
測試環境是 Windows x64,Intel 2.8GHz
C 版本是從底下這兒來的
http://codegolf.stackexchange.com/questions/12844/emulate-a-mos-6502-cpu
Python 跟 RPython 版本都是 Py65 的修改版
結果如下
Python32 < Python64 < PyPy < PyPy3 < RPython O0 < C O0 < RPython O3 < C O3
最慢跟最快差了快 200 倍,比較需要注意的是 PyPy3 硬是比 PyPy 快了不少
Z:\>py -2.7-32 test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 11076043
Second: 3.253514
Instruction: 1000000
Cycle: 3055614
MHz: 0.939173
Z:\>py -2.7-32 -O test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 11018579
Second: 3.236635
Instruction: 1000000
Cycle: 3055614
MHz: 0.944071
Z:\>py -2.7-64 test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 9756155
Second: 2.865806
Instruction: 1000000
Cycle: 3055614
MHz: 1.066232
Z:\>py -2.7-64 -O test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 9849147
Second: 2.893122
Instruction: 1000000
Cycle: 3055614
MHz: 1.056165
Z:\>pypy test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 259815659
Second: 76.319131
Instruction: 500000000
Cycle: 1527849101
MHz: 20.019215
Z:\>pypy -O test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 259164404
Second: 76.127829
Instruction: 500000000
Cycle: 1527849101
MHz: 20.069522
Z:\>pypy3 test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 134081417
Second: 39.385529
Instruction: 500000000
Cycle: 1527849101
MHz: 38.792144
Z:\>pypy3 -O test.py
Filename: Alien.bin
Frequency: 3404332
Counter: 137038840
Second: 40.254253
Instruction: 500000000
Cycle: 1527849101
MHz: 37.954974
Z:\>test-c--opt0
Filename: Alien.bin
Frequency: 3404332
Counter: 13574028
Second: 3.987281
Instruction: 100000000
Cycle: 305570011
MHz: 76.636188
Z:\>test-c--opt3
Filename: Alien.bin
Frequency: 3404332
Counter: 6157551
Second: 1.808740
Instruction: 100000000
Cycle: 305570011
MHz: 168.940828
Z:\>test-O0
Filename: Alien.bin
Frequency: 3404332
Counter: 10799775
Second: 3.172362
Instruction: 100000000
Cycle: 305570011
MHz: 96.322541
Z:\>test-O3
Filename: Alien.bin
Frequency: 3404332
Counter: 5553513
Second: 1.631308
Instruction: 100000000
Cycle: 305570011
MHz: 187.315987
----------------------------------------------------------------------------
Z:\>py -2.7-32 test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 11083492
Second: 3.255702
Instruction: 1000000
Cycle: 2900865
MHz: 0.891010
Z:\>py -2.7-32 -O test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 11094981
Second: 3.259077
Instruction: 1000000
Cycle: 2900865
MHz: 0.890088
Z:\>py -2.7-64 test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 9831143
Second: 2.887833
Instruction: 1000000
Cycle: 2900865
MHz: 1.004513
Z:\>py -2.7-64 -O test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 9868391
Second: 2.898775
Instruction: 1000000
Cycle: 2900865
MHz: 1.000721
Z:\>pypy test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 503536743
Second: 147.910587
Instruction: 500000000
Cycle: 1449563451
MHz: 9.800268
Z:\>pypy -O test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 512924673
Second: 150.668229
Instruction: 500000000
Cycle: 1449563451
MHz: 9.620897
Z:\>pypy3 test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 178400259
Second: 52.403896
Instruction: 500000000
Cycle: 1449563451
MHz: 27.661368
Z:\>pypy3 -O test.py
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 179105472
Second: 52.611047
Instruction: 500000000
Cycle: 1449563451
MHz: 27.552454
Z:\>test-c--opt0
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 13233133
Second: 3.887145
Instruction: 100000000
Cycle: 289918928
MHz: 74.584022
Z:\>test-c--opt3
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 6342670
Second: 1.863117
Instruction: 100000000
Cycle: 289918928
MHz: 155.609591
Z:\>test-O0
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 10878511
Second: 3.195491
Instruction: 100000000
Cycle: 289918929
MHz: 90.727517
Z:\>test-O3
Filename: AirSeaBattle.bin
Frequency: 3404332
Counter: 5593494
Second: 1.643052
Instruction: 100000000
Cycle: 289918929
MHz: 176.451479
--
放著養蚊子的部落格 http://resolaqq.blogspot.tw
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.246.166.44
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1449155488.A.F3F.html
→
12/06 22:35, , 1F
12/06 22:35, 1F
→
12/06 22:36, , 2F
12/06 22:36, 2F
→
12/06 22:36, , 3F
12/06 22:36, 3F
→
12/06 22:37, , 4F
12/06 22:37, 4F
→
12/06 22:38, , 5F
12/06 22:38, 5F
→
12/06 22:38, , 6F
12/06 22:38, 6F
→
12/06 22:38, , 7F
12/06 22:38, 7F
→
12/06 22:41, , 8F
12/06 22:41, 8F
→
12/06 22:42, , 9F
12/06 22:42, 9F
Python 近期熱門文章
PTT數位生活區 即時熱門文章