Run npm run benchmark
to run the CPU benchmark.
> [email protected] benchmark:t2 /Users/michaelvogt/_code/github/wpc-emu
> CYCLES=20000000 ROMFILE=./rom/t2_l8.rom node test/integration/benchmark.js > /dev/null
BENCHMARK START, ROM: ./rom/t2_l8.rom
Ticks to execute: 20000000 => CPU REALTIME: 10000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted watchDogExpired
1 1385 1547379 1544189 20000004 2
2 1310 1547379 1544189 20000004 2
4 833 1547379 1544189 20000005 2
5 791 1547379 1544189 20000004 2
8 760 1547378 1544189 20000005 2
10 753 1547379 1544188 20000005 2
12 804 1547379 1544187 20000010 2
16 700 1547376 1544187 20000005 2
32 669 1547376 1544187 20000005 2
64 659 1547376 1544176 20000027 2
256 632 1547378 1544173 20000113 2
390 603 1547313 1544176 20000103 2
393 619 1547307 1544134 20000114 2
512 593 1547483 1544173 20000319 2
1024 590 1547279 1540535 20000578 2
2048 600 1546924 1532907 20000015 2
4096 589 1546924 1516712 20001384 2
8192 587 1546015 1485669 20000637 2441
16384 577 1544194 1428677 20006939 1221
32768 569 1540553 1314695 20022118 611
65536 580 1532938 1086741 20054620 306
> [email protected] benchmark:t2 /Users/michaelvogt/_code/github/wpc-emu
> CYCLES=20000000 ROMFILE=./rom/t2_l8.rom node test/integration/benchmark.js > /dev/null
BENCHMARK START, ROM: ./rom/t2_l8.rom
Ticks to execute: 20000000 => CPU REALTIME: 10000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted watchDogExpired
1 1424 1547379 1544189 20000004 2
2 1535 1547379 1544189 20000004 2
4 857 1547379 1544189 20000005 2
5 822 1547379 1544189 20000004 2
8 751 1547378 1544189 20000005 2
10 715 1547379 1544188 20000005 2
12 703 1547379 1544187 20000010 2
16 707 1547376 1544187 20000005 2
32 658 1547376 1544187 20000005 2
64 619 1547376 1544176 20000027 2
256 697 1547378 1544173 20000113 2
390 617 1547313 1544176 20000103 2
393 598 1547307 1544134 20000114 2
512 610 1547483 1544173 20000319 2
1024 609 1547279 1540535 20000578 2
2048 625 1546924 1532907 20000015 2
4096 735 1546924 1516712 20001384 2
8192 683 1546015 1485669 20000637 2441
16384 575 1544194 1428677 20006939 1221
32768 585 1540553 1314695 20022118 611
65536 675 1532938 1086741 20054620 306
BENCHMARK START, ROM: /Users/michu/_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 598 976 854 2000006
2 288 976 854 2000006
4 167 976 854 2000006
5 136 976 854 2000006
8 196 976 854 2000006
10 162 976 854 2000006
12 135 976 854 2000011
16 110 976 854 2000011
32 116 976 854 2000029
64 118 976 854 2000043
256 116 976 854 2000174
390 121 976 854 2000207
393 134 976 854 2000138
512 114 976 852 2000418
1024 111 976 427 2000930
2048 112 976 214 2001113
4096 117 489 107 2004026
8192 127 245 54 2007680
16384 110 123 27 2015481
32768 112 62 14 2031779
65536 115 31 7 2031695
- used
deoptigate
(https://github.com/thlorenz/deoptigate -deoptigate test/integration/benchmark.js
) to analyse unoptimised code
BENCHMARK START, ROM: /Users/michaelvogt/_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 372 975 0 2000006
2 133 975 0 2000006
4 116 975 0 2000006
5 121 975 0 2000006
8 123 975 0 2000006
10 116 975 0 2000006
12 119 975 0 2000011
16 115 975 0 2000011
32 115 975 0 2000029
64 112 975 0 2000043
256 115 975 0 2000174
390 110 975 0 2000207
393 120 975 0 2000138
512 114 975 0 2000418
1024 114 975 0 2000930
2048 111 975 0 2001113
4096 111 488 0 2004026
8192 115 244 0 2007680
16384 115 122 0 2015481
32768 116 61 0 2031779
65536 116 30 0 2031695
BENCHMARK START, ROM: /Users/michaelvogt/_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 276 975 0 2000006
2 220 975 0 2000006
4 118 975 0 2000006
5 125 975 0 2000006
8 114 975 0 2000006
10 110 975 0 2000006
12 111 975 0 2000011
16 110 975 0 2000011
32 108 975 0 2000029
64 107 975 0 2000043
256 108 975 0 2000174
390 113 975 0 2000207
393 112 975 0 2000138
512 107 975 0 2000418
1024 107 975 0 2000930
2048 107 975 0 2001113
4096 106 488 0 2004026
8192 109 244 0 2007680
16384 106 122 0 2015481
32768 111 61 0 2031779
65536 113 30 0 2031695
- Converted cpu6809 code to a class - needed to have multiple instances of the CPU. This increased the duration to execute 2 million instructions.
- Starting in this version, the CPU Board drives the soundboard - which needs to update a second 6809 CPU.
BENCHMARK START, ROM: /_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 353 975 0 2000001
2 172 975 0 2000001
4 120 975 0 2000001
5 113 975 0 2000001
8 111 975 0 2000005
10 111 975 0 2000008
12 108 975 0 2000001
16 110 975 0 2000001
32 105 975 0 2000001
64 108 975 0 2000033
256 107 975 0 2000172
390 106 975 0 2000216
393 110 975 0 2000128
512 106 975 0 2000408
1024 103 975 0 2000964
2048 111 974 0 2001103
4096 102 488 0 2004016
8192 145 244 0 2007691
16384 106 122 0 2015471
BENCHMARK START, ROM: /_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 775 975 0 2000001
2 262 975 0 2000001
4 199 975 0 2000001
5 228 975 0 2000001
8 221 975 0 2000005
10 214 975 0 2000008
12 214 975 0 2000001
16 214 975 0 2000001
32 209 975 0 2000001
64 216 975 0 2000033
256 202 975 0 2000172
390 251 975 0 2000216
393 293 975 0 2000128
512 376 975 0 2000408
1024 292 975 0 2000964
2048 516 974 0 2001103
4096 369 488 0 2004016
8192 623 244 0 2007691
16384 621 122 0 2015471
BENCHMARK START, ROM: /_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 296 975 0 2000001
2 256 975 0 2000001
4 124 975 0 2000001
5 117 975 0 2000001
8 118 975 0 2000005
10 116 975 0 2000008
12 120 975 0 2000001
16 121 975 0 2000001
32 118 975 0 2000001
64 117 975 0 2000033
256 116 975 0 2000172
390 115 975 0 2000216
393 114 975 0 2000128
512 110 975 0 2000408
1024 106 975 0 2000964
2048 109 974 0 2001103
4096 113 488 0 2004016
8192 134 244 0 2007691
16384 137 122 0 2015471
BENCHMARK START, ROM: /_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 207 975 0 2000001
2 116 975 0 2000001
4 104 975 0 2000001
5 109 975 0 2000001
8 122 975 0 2000005
10 102 975 0 2000008
12 103 975 0 2000001
16 95 975 0 2000001
32 97 975 0 2000001
64 101 975 0 2000033
256 91 975 0 2000172
390 96 975 0 2000216
393 93 975 0 2000128
512 91 975 0 2000408
1024 86 975 0 2000964
2048 79 974 0 2001103
4096 89 488 0 2004016
8192 74 244 0 2007691
16384 74 122 0 2015471
BENCHMARK START, ROM: /_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 205 975 0 2000001
2 81 975 0 2000001
4 77 975 0 2000001
5 69 975 0 2000001
8 66 975 0 2000005
10 65 975 0 2000008
12 63 975 0 2000001
16 63 975 0 2000001
32 68 975 0 2000001
64 61 975 0 2000033
256 60 975 0 2000172
390 63 975 0 2000216
393 62 975 0 2000128
512 62 975 0 2000408
1024 59 975 0 2000964
2048 59 974 0 2001103
4096 61 488 0 2004016
8192 59 244 0 2007691
16384 60 122 0 2015471
BENCHMARK START, ROM: /_code/github/wpc-emu/rom.freewpc/ft20_32.rom
Ticks to execute: 2000000 => CPU REALTIME: 1000ms (CPU HZ: 2000000)
tickSteps durationMs missed IRQ missed FIRQ ticksExecuted
1 146 975 0 2000001
2 104 975 0 2000001
4 81 975 0 2000001
5 87 975 0 2000001
8 83 975 0 2000005
10 81 975 0 2000008
12 80 975 0 2000001
16 80 975 0 2000001
32 81 975 0 2000001
64 78 975 0 2000033
256 76 975 0 2000172
390 79 975 0 2000216
393 75 975 0 2000128
512 76 975 0 2000408
1024 73 975 0 2000964
2048 71 974 0 2001103
4096 69 488 0 2004016
8192 69 244 0 2007691
16384 72 122 0 2015471