mycpp Code Generation

Measure the speedup from mycpp, and the resource usage.

Source code: oil/mycpp/examples

User Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 3 32 0.000
fib_iter gen 4 4 898 0.004
modules gen 2 0 190 0.011
fib_recursive gen 11 11 889 0.012
loops gen 4 3 295 0.013
asdl_generated gen 7 12 373 0.020
parse gen 26 28 777 0.034
scoped_resource gen 48 46 1,049 0.046
tuple_return_value gen 16 15 193 0.080
containers gen 12 7 115 0.104
files gen 8 8 73 0.107
gc_stack_roots gen 2 2 14 0.129
length gen 45 47 218 0.205
cartesian gen 88 83 347 0.253
escape gen 105 99 353 0.297
cgi gen 261 265 533 0.491
varargs gen 19 16 16 1.237
control_flow gen 207 163 121 1.711
pea_hello gen NA NA 12 NA

Max Resident Set Size (MB)

Lower ratios are better. We use MB (powers of 10), not MiB (powers of 2).

example name gen C++ C++-Souffle Python C++ : Python
classes gen 4.5 4.5 12.3 0.36
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
fib_iter gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
length gen 3.8 3.9 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.9 8.5 0.45
cartesian gen 3.8 3.5 8.4 0.45
files gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.7 8.5 0.46
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
escape gen 0 4 4 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 0 7 0.000
length gen 0 0 4 0.000
loops gen 0 0 8 0.000
modules gen 0 2 8 0.000
scoped_resource gen 0 0 4 0.000
containers gen 4 7 32 0.125
parse gen 4 0 16 0.273
asdl_generated gen 4 0 12 0.304
classes gen 3 0 8 0.409
tuple_return_value gen 4 4 8 0.492
varargs gen 46 49 66 0.699
fib_iter gen 4 4 4 0.960
control_flow gen 4 0 4 0.987
cartesian gen 4 4 4 0.999
cgi gen 8 4 0 inf
pea_hello gen NA NA 8 NA

raw benchmark files