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 2 31 0.000
gc_stack_roots gen 0 0 11 0.000
fib_iter gen 6 6 1,059 0.005
modules gen 2 1 188 0.009
loops gen 3 2 304 0.009
fib_recursive gen 11 10 892 0.012
asdl_generated gen 10 7 389 0.025
parse gen 27 23 770 0.035
scoped_resource gen 46 41 1,036 0.044
files gen 5 6 74 0.062
containers gen 9 5 120 0.071
tuple_return_value gen 16 16 189 0.085
length gen 42 43 212 0.198
cartesian gen 84 76 345 0.245
escape gen 101 97 370 0.272
cgi gen 268 266 528 0.507
varargs gen 17 18 27 0.637
control_flow gen 208 161 115 1.808
pea_hello gen NA NA 14 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.5 12.3 0.36
cgi gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
cartesian gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
length gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.8 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
modules gen 3.8 3.5 8.7 0.44
control_flow gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
tuple_return_value gen 3.8 3.5 8.4 0.45
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 0 1 6 0.000
modules gen 0 1 8 0.000
control_flow gen 1 0 7 0.144
containers gen 3 5 21 0.153
loops gen 1 1 5 0.186
asdl_generated gen 1 4 5 0.197
gc_stack_roots gen 2 2 8 0.217
scoped_resource gen 2 7 8 0.253
fib_iter gen 2 1 7 0.269
tuple_return_value gen 3 2 11 0.275
cgi gen 2 2 7 0.286
length gen 3 3 10 0.300
parse gen 3 4 10 0.302
files gen 3 2 9 0.307
classes gen 3 1 7 0.435
escape gen 5 7 7 0.718
varargs gen 22 21 26 0.857
cartesian gen 7 10 4 1.753
pea_hello gen NA NA 4 NA

raw benchmark files