12-05-2012, 11:42 PM
I've made some profiling to see what's missing for a good framerate. Main bottleneck is the MIPS. It'll need to support 10+Millions of instructions per frame.
For one random frame, profiling for the function searching the instruction :
Then for each different instructions executed :
I'll look forward to see how this will be optimized in the future.
For one random frame, profiling for the function searching the instruction :
Code:
MIPSGetInstruction: 733.220 ms, call : 12366916Then for each different instructions executed :
Code:
or: 67.384 ms, call : 1061124
jal: 21.445 ms, call : 369042
addiu: 99.921 ms, call : 1678724
lb: 2.591 ms, call : 29268
slti: 1.105 ms, call : 16446
sw: 38.326 ms, call : 527943
beq: 50.673 ms, call : 623778
bne: 54.813 ms, call : 661700
lw: 153.230 ms, call : 2282270
lh: 19.218 ms, call : 213797
jalr: 14.206 ms, call : 215107
addu: 30.604 ms, call : 460790
ori: 3.573 ms, call : 56272
and: 31.867 ms, call : 513482
andi: 2.882 ms, call : 49210
jr: 36.772 ms, call : 584145
slt: 5.722 ms, call : 92138
lhu: 0.731 ms, call : 8930
sb: 5.124 ms, call : 71372
sll: 46.410 ms, call : 767109
lbu: 16.514 ms, call : 172389
sltu: 2.461 ms, call : 39397
lui: 44.170 ms, call : 689434
bnel: 12.947 ms, call : 182817
blez: 0.081 ms, call : 1128
bltz: 0.327 ms, call : 3347
subu: 0.390 ms, call : 5989
beql: 20.897 ms, call : 333665
bgez: 9.227 ms, call : 155823
xori: 0.182 ms, call : 3449
srl: 11.459 ms, call : 172059
xor: 10.413 ms, call : 153687
sltiu: 11.229 ms, call : 163645
sh: 0.158 ms, call : 1953
syscall: 1.928 ms, call : 2442
sllv: 0.116 ms, call : 988
bgtz: 0.001 ms, call : 10
nor: 0.004 ms, call : 93
sra: 0.072 ms, call : 1035
mult: 0.067 ms, call : 345
mflo: 0.019 ms, call : 349
mtc1: 0.002 ms, call : 16
swc1: 0.006 ms, call : 78
divu: 0.011 ms, call : 29
mfhi: 0.006 ms, call : 25
mov.s: 0.003 ms, call : 8
lwc1: 0.000 ms, call : 5
srlv: 0.000 ms, call : 1
blezl: 0.005 ms, call : 63I'll look forward to see how this will be optimized in the future.

