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
loops gen 0 0 304 0.000
fib_iter gen 4 8 896 0.004
modules gen 2 2 192 0.010
fib_recursive gen 11 11 881 0.012
asdl_generated gen 11 11 383 0.029
parse gen 27 27 768 0.035
scoped_resource gen 48 45 1,032 0.047
containers gen 10 14 119 0.086
gc_stack_roots gen 2 2 20 0.089
files gen 7 4 75 0.099
tuple_return_value gen 19 15 193 0.099
classes gen 3 3 23 0.140
length gen 37 41 214 0.172
escape gen 101 98 343 0.293
cartesian gen 99 87 331 0.300
varargs gen 12 12 28 0.445
cgi gen 254 252 542 0.469
control_flow gen 206 158 126 1.641
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.5 4.5 12.3 0.36
fib_recursive gen 3.4 3.5 8.5 0.40
gc_stack_roots gen 3.4 3.4 8.5 0.40
parse gen 3.7 3.7 9.1 0.40
cgi gen 3.5 3.4 8.5 0.42
escape gen 3.5 3.5 8.5 0.42
scoped_resource gen 3.5 3.8 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
length gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.5 8.4 0.45
files gen 3.8 3.8 8.4 0.45
containers gen 28.7 28.6 49.2 0.58
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 12 0.000
cartesian gen 0 0 8 0.000
cgi gen 0 0 8 0.000
classes gen 0 0 15 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 4 8 0.000
modules gen 0 0 4 0.000
scoped_resource gen 0 0 8 0.000
tuple_return_value gen 0 4 8 0.000
containers gen 5 0 24 0.215
parse gen 4 0 12 0.318
escape gen 4 8 12 0.336
control_flow gen 4 4 12 0.337
fib_iter gen 4 0 8 0.475
varargs gen 54 53 52 1.037
loops gen 4 3 4 1.044
length gen 8 4 4 2.031
gc_stack_roots gen 0 0 0 NA
pea_hello gen NA NA 9 NA

raw benchmark files