Move Benchmark class to benchmark.js rather than have it as part of the generated code.
Remove some stale logging.
Remove main from TSF-wasm since it's no longer used.
Make the count value an argument rather than a constant in C code. This appears to make the
performance characteristics similar to what it was before this refactor.
Old sampling (after recompile so wasm function numbers are meaningful):
Sampling rate: 1000.000000 microseconds. Total samples: 364
Top functions as <numSamples 'functionName#hash:sourceID'>
199 '<?>.wasm-function[100]#<nil>:4294967295'
34 '<?>.wasm-function[238]#<nil>:4294967295'
19 '<?>.wasm-function[208]#<nil>:4294967295'
16 '_platform_memmove#<nil>:4294967295'
12 '<?>.wasm-function[251]#<nil>:4294967295'
11 '<?>.wasm-function[232]#<nil>:4294967295'
9 '<?>.wasm-function[209]#<nil>:4294967295'
8 '<?>.wasm-function[237]#<nil>:4294967295'
7 '<?>.wasm-function[201]#<nil>:4294967295'
5 '<?>.wasm-function[250]#<nil>:4294967295'
4 '<?>.wasm-function[213]#<nil>:4294967295'
3 '<?>.wasm-function[216]#<nil>:4294967295'
Sampling rate: 1000.000000 microseconds. Total samples: 364
Tier breakdown:
-----------------------------------
LLInt: 0 (0.000000%)
Baseline: 1 (0.274725%)
DFG: 0 (0.000000%)
FTL: 0 (0.000000%)
js builtin: 0 (0.000000%)
IPInt: 0 (0.000000%)
WasmLLInt: 3 (0.824176%)
BBQ: 211 (57.967033%)
OMG: 116 (31.868132%)
Wasm: 0 (0.000000%)
Host: 0 (0.000000%)
RegExp: 0 (0.000000%)
C/C++: 30 (8.241758%)
Unknown Frame: 3 (0.824176%)
Hottest bytecodes as <numSamples 'functionName#hash:JITType:bytecodeIndex'>
33 '<?>.wasm-function[100]:BBQMode:0x2ed'
33 '<?>.wasm-function[100]:BBQMode:0x2f0'
16 '_platform_memmove#<nil>:None:<nil>'
8 '<?>.wasm-function[100]:BBQMode:0xa733'
7 '<?>.wasm-function[100]:BBQMode:0x70a2'
6 '<?>.wasm-function[100]:BBQMode:0x6f8a'
6 '<?>.wasm-function[100]:BBQMode:0x6f94'
5 '<?>.wasm-function[208]:OMGMode:nil'
5 '<?>.wasm-function[100]:BBQMode:0x5b'
5 '<?>.wasm-function[100]:BBQMode:0x6f9b'
4 '<?>.wasm-function[100]:BBQMode:0x5df3'
...
New sampling with this PR:
Sampling rate: 1000.000000 microseconds. Total samples: 4908
Top functions as <numSamples 'functionName#hash:sourceID'>
2763 '<?>.wasm-function[100]#<nil>:4294967295'
464 '<?>.wasm-function[238]#<nil>:4294967295'
436 '<?>.wasm-function[208]#<nil>:4294967295'
138 '<?>.wasm-function[251]#<nil>:4294967295'
128 '<?>.wasm-function[237]#<nil>:4294967295'
117 '<?>.wasm-function[232]#<nil>:4294967295'
108 '<?>.wasm-function[250]#<nil>:4294967295'
107 '<?>.wasm-function[209]#<nil>:4294967295'
104 '<?>.wasm-function[201]#<nil>:4294967295'
77 '<?>.wasm-function[216]#<nil>:4294967295'
54 '<?>.wasm-function[226]#<nil>:4294967295'
43 '<?>.wasm-function[162]#<nil>:4294967295'
Sampling rate: 1000.000000 microseconds. Total samples: 4908
Tier breakdown:
-----------------------------------
LLInt: 0 (0.000000%)
Baseline: 2 (0.040750%)
DFG: 2 (0.040750%)
FTL: 5 (0.101874%)
js builtin: 1 (0.020375%)
IPInt: 0 (0.000000%)
WasmLLInt: 3 (0.061125%)
BBQ: 2771 (56.458843%)
OMG: 1988 (40.505297%)
Wasm: 0 (0.000000%)
Host: 0 (0.000000%)
RegExp: 0 (0.000000%)
C/C++: 95 (1.935615%)
Unknown Frame: 41 (0.835371%)
Unknown Executable: 1 (0.020375%)
Hottest bytecodes as <numSamples 'functionName#hash:JITType:bytecodeIndex'>
526 '<?>.wasm-function[100]:BBQMode:0x2ed'
451 '<?>.wasm-function[100]:BBQMode:0x2f0'
125 '<?>.wasm-function[208]:OMGMode:0x0'
105 '<?>.wasm-function[100]:BBQMode:0x6f8a'
91 '<?>.wasm-function[100]:BBQMode:0xa724'
84 '<?>.wasm-function[100]:BBQMode:0x5b'
81 '<?>.wasm-function[100]:BBQMode:0xa733'
79 '<?>.wasm-function[100]:BBQMode:0x6f94'
77 '<?>.wasm-function[100]:BBQMode:nil'
63 '<?>.wasm-function[208]:OMGMode:0x16d'
...
It looks like versions have similar sample rates for the top function.
There's more samples in the top tier compiler but that's presumably ok and expected as the test runs longer.
7 files changed