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
fib_recursive gen 7 7 897 0.008
fib_iter gen 8 8 894 0.009
modules gen 2 2 192 0.009
loops gen 4 3 296 0.013
asdl_generated gen 11 8 386 0.028
parse gen 23 27 782 0.029
scoped_resource gen 40 42 1,016 0.039
containers gen 10 14 119 0.086
tuple_return_value gen 19 18 192 0.100
gc_stack_roots gen 2 0 16 0.110
files gen 7 7 67 0.111
classes gen 3 3 21 0.153
length gen 45 41 208 0.216
cartesian gen 87 77 328 0.265
escape gen 101 100 367 0.275
cgi gen 250 267 518 0.484
varargs gen 21 12 24 0.866
control_flow gen 205 161 109 1.878
pea_hello gen NA NA 15 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.6 12.5 0.36
gc_stack_roots gen 3.4 3.5 8.5 0.40
cgi gen 3.5 3.8 8.5 0.42
escape gen 3.5 3.5 8.4 0.42
loops gen 3.7 3.9 8.5 0.43
parse gen 3.9 3.7 9.1 0.43
asdl_generated gen 3.5 3.7 8.1 0.44
cartesian gen 3.7 3.5 8.4 0.44
fib_iter gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.5 8.5 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.8 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.6 28.7 49.2 0.58
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
asdl_generated gen 0 4 4 0.000
classes gen 0 0 17 0.000
fib_iter gen 0 0 12 0.000
files gen 0 0 16 0.000
gc_stack_roots gen 0 2 4 0.000
length gen 0 4 8 0.000
loops gen 0 0 8 0.000
modules gen 0 0 4 0.000
tuple_return_value gen 0 0 8 0.000
containers gen 5 0 24 0.215
cartesian gen 4 8 12 0.330
cgi gen 4 0 12 0.333
control_flow gen 4 0 12 0.337
fib_recursive gen 4 4 8 0.447
scoped_resource gen 8 4 12 0.659
varargs gen 45 54 55 0.817
parse gen 8 0 8 0.955
escape gen 4 4 4 1.000
pea_hello gen NA NA 4 NA

raw benchmark files