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 28 0.000
loops gen 0 0 300 0.000
fib_iter gen 7 8 911 0.008
modules gen 2 2 190 0.009
fib_recursive gen 11 11 909 0.012
asdl_generated gen 5 11 394 0.014
parse gen 27 27 787 0.034
scoped_resource gen 44 38 1,021 0.043
containers gen 8 7 117 0.066
files gen 7 7 78 0.094
tuple_return_value gen 19 18 195 0.100
gc_stack_roots gen 2 2 17 0.102
length gen 41 38 217 0.188
cartesian gen 83 74 350 0.238
escape gen 104 88 347 0.301
cgi gen 265 270 525 0.504
varargs gen 16 15 31 0.532
control_flow gen 208 156 118 1.773
pea_hello gen NA NA 15 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.3 4.5 12.3 0.35
gc_stack_roots gen 3.5 3.5 8.5 0.42
modules gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.7 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
length gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.8 8.4 0.44
fib_iter gen 3.7 3.8 8.3 0.44
control_flow gen 3.8 3.9 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.1 0.47
files gen 3.9 3.7 8.4 0.47
containers gen 28.6 28.5 49.1 0.58
varargs gen 5.6 5.5 8.5 0.66
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 12 8 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 0 4 0.000
modules gen 0 0 8 0.000
tuple_return_value gen 0 0 4 0.000
scoped_resource gen 4 8 16 0.249
classes gen 3 0 12 0.272
containers gen 8 7 27 0.282
loops gen 4 3 8 0.460
parse gen 4 0 8 0.476
cgi gen 4 0 8 0.500
varargs gen 49 50 50 0.981
control_flow gen 4 4 4 0.989
length gen 4 8 4 1.017
asdl_generated gen 5 0 4 1.334
cartesian gen 8 12 0 inf
pea_hello gen NA NA 4 NA

raw benchmark files