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
gc_stack_roots gen 0 2 10 0.000
fib_iter gen 4 8 936 0.004
modules gen 2 2 193 0.009
fib_recursive gen 11 11 881 0.013
loops gen 4 3 299 0.013
asdl_generated gen 7 7 378 0.020
parse gen 27 27 795 0.033
scoped_resource gen 49 43 1,047 0.046
containers gen 8 4 140 0.058
classes gen 3 4 40 0.080
files gen 7 8 76 0.097
tuple_return_value gen 19 15 197 0.099
length gen 45 37 208 0.217
cartesian gen 91 70 338 0.270
escape gen 112 99 352 0.319
cgi gen 251 259 525 0.479
varargs gen 24 19 36 0.651
control_flow gen 204 162 109 1.875
pea_hello gen NA NA 9 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.3 12.5 0.35
gc_stack_roots gen 3.4 3.5 8.5 0.40
cartesian gen 3.5 3.5 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
modules gen 3.8 3.5 8.7 0.44
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.9 3.8 8.5 0.46
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.4 28.5 48.9 0.58
varargs gen 5.4 5.4 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
cartesian gen 0 16 4 0.000
escape gen 0 4 8 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 12 0.000
length gen 0 8 12 0.000
loops gen 0 0 8 0.000
modules gen 0 0 4 0.000
scoped_resource gen 0 4 8 0.000
tuple_return_value gen 0 4 4 0.000
gc_stack_roots gen 2 0 10 0.200
control_flow gen 4 0 16 0.257
containers gen 8 11 28 0.291
asdl_generated gen 4 4 12 0.310
fib_iter gen 4 0 8 0.484
parse gen 4 0 4 0.951
varargs gen 43 47 44 0.977
cgi gen 4 8 4 0.996
classes gen 0 0 0 NA
pea_hello gen NA NA 9 NA

raw benchmark files