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 189 0.005
fib_iter gen 7 8 900 0.007
loops gen 3 2 301 0.009
fib_recursive gen 9 10 890 0.010
asdl_generated gen 9 9 384 0.023
parse gen 27 24 790 0.035
scoped_resource gen 47 42 1,046 0.045
classes gen 2 1 32 0.063
containers gen 9 5 120 0.071
gc_stack_roots gen 1 1 11 0.078
tuple_return_value gen 17 16 194 0.088
files gen 7 8 80 0.091
length gen 41 42 212 0.194
cartesian gen 85 76 340 0.251
escape gen 102 95 363 0.282
cgi gen 264 263 528 0.500
varargs gen 18 16 31 0.584
control_flow gen 208 161 113 1.835
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.3 12.3 0.36
cgi gen 3.5 3.7 8.5 0.42
fib_recursive gen 3.5 3.8 8.5 0.42
gc_stack_roots gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
length 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.8 8.4 0.47
containers gen 28.8 28.8 49.2 0.58
varargs gen 5.5 5.4 8.4 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
files gen 0 0 5 0.000
fib_iter gen 1 0 10 0.094
gc_stack_roots gen 1 1 8 0.107
scoped_resource gen 1 4 9 0.111
cgi gen 1 5 9 0.111
containers gen 3 5 25 0.128
modules gen 1 1 6 0.145
classes gen 1 2 6 0.172
fib_recursive gen 2 1 9 0.217
loops gen 1 1 4 0.233
control_flow gen 2 1 7 0.285
length gen 3 3 10 0.303
asdl_generated gen 2 2 6 0.323
tuple_return_value gen 2 2 6 0.335
parse gen 3 3 8 0.379
escape gen 3 8 6 0.503
varargs gen 21 23 22 0.960
cartesian gen 6 8 6 0.993
pea_hello gen NA NA 7 NA

raw benchmark files