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 0 0 189 0.000
fib_iter gen 6 7 948 0.006
loops gen 3 2 293 0.009
fib_recursive gen 10 10 897 0.011
asdl_generated gen 9 9 406 0.021
parse gen 29 25 773 0.037
scoped_resource gen 43 42 1,033 0.042
containers gen 7 6 121 0.056
gc_stack_roots gen 1 0 13 0.066
classes gen 2 1 29 0.071
files gen 6 5 77 0.081
tuple_return_value gen 18 14 196 0.092
length gen 40 40 211 0.190
cartesian gen 85 81 337 0.253
escape gen 99 94 363 0.272
cgi gen 266 265 522 0.510
varargs gen 18 21 22 0.831
control_flow gen 206 160 115 1.800
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.3 12.2 0.37
gc_stack_roots gen 3.4 3.5 8.4 0.41
cartesian gen 3.5 3.7 8.5 0.42
files gen 3.5 3.8 8.5 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
length 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.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.8 28.9 49.1 0.59
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
loops gen 1 1 10 0.092
classes gen 1 2 9 0.114
gc_stack_roots gen 1 2 6 0.143
files gen 1 2 7 0.146
parse gen 2 2 12 0.164
tuple_return_value gen 1 4 5 0.200
containers gen 5 4 22 0.221
control_flow gen 2 2 9 0.223
fib_iter gen 2 1 8 0.235
asdl_generated gen 2 2 9 0.238
fib_recursive gen 1 1 4 0.247
modules gen 2 2 7 0.251
scoped_resource gen 4 3 10 0.394
cgi gen 3 3 7 0.429
length gen 4 5 7 0.573
varargs gen 21 19 32 0.666
cartesian gen 6 6 6 0.990
escape gen 7 9 6 1.162
pea_hello gen NA NA 6 NA

raw benchmark files