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
modules gen 1 1 191 0.005
fib_iter gen 7 7 942 0.007
fib_recursive gen 10 9 885 0.012
loops gen 4 2 304 0.012
asdl_generated gen 8 10 398 0.020
parse gen 27 22 773 0.035
scoped_resource gen 44 44 1,045 0.042
containers gen 6 7 125 0.048
files gen 6 7 76 0.085
tuple_return_value gen 17 16 198 0.087
classes gen 3 1 33 0.095
gc_stack_roots gen 2 2 13 0.132
length gen 42 43 215 0.196
cartesian gen 88 75 343 0.257
escape gen 100 96 357 0.282
cgi gen 265 265 541 0.489
varargs gen 15 19 26 0.584
control_flow gen 211 157 120 1.757
pea_hello gen NA NA 11 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.2 12.5 0.36
gc_stack_roots gen 3.4 3.7 8.4 0.41
asdl_generated gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.5 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
files gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.5 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
length gen 3.8 3.5 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.9 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.8 49.2 0.58
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 2 7 0.000
control_flow gen 0 4 9 0.000
gc_stack_roots gen 0 0 7 0.000
loops gen 0 2 11 0.000
fib_recursive gen 1 2 10 0.102
files gen 1 1 7 0.155
modules gen 1 1 6 0.161
asdl_generated gen 3 1 12 0.246
fib_iter gen 1 1 4 0.250
parse gen 3 5 12 0.251
containers gen 6 4 20 0.300
tuple_return_value gen 2 2 6 0.337
scoped_resource gen 3 3 8 0.375
length gen 3 3 8 0.376
cartesian gen 3 11 6 0.500
cgi gen 6 3 8 0.751
escape gen 6 7 8 0.754
varargs gen 24 20 28 0.867
pea_hello gen NA NA 7 NA

raw benchmark files