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
asdl_generated gen 0 11 383 0.000
gc_stack_roots gen 0 0 8 0.000
fib_iter gen 4 8 931 0.004
modules gen 2 2 191 0.010
fib_recursive gen 11 11 885 0.012
loops gen 4 3 291 0.014
parse gen 31 19 769 0.040
scoped_resource gen 48 46 1,021 0.047
tuple_return_value gen 15 18 194 0.080
containers gen 10 11 108 0.096
files gen 8 4 76 0.100
classes gen 3 3 27 0.122
length gen 38 46 199 0.192
escape gen 96 99 375 0.256
cartesian gen 92 86 333 0.276
cgi gen 265 260 517 0.513
varargs gen 12 21 21 0.560
control_flow gen 202 163 114 1.769
pea_hello gen NA NA 7 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.3 0.36
escape gen 3.4 3.5 8.4 0.41
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.9 9.1 0.42
cartesian gen 3.5 3.5 8.4 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.9 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.7 8.4 0.44
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.6 28.4 49.2 0.58
varargs gen 5.5 5.6 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cartesian gen 0 0 8 0.000
classes gen 0 0 12 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 4 8 0.000
loops gen 0 0 16 0.000
modules gen 0 0 4 0.000
parse gen 0 8 12 0.000
scoped_resource gen 0 0 8 0.000
containers gen 5 4 36 0.144
gc_stack_roots gen 2 2 12 0.150
fib_iter gen 4 0 12 0.315
cgi gen 4 8 12 0.329
length gen 8 0 16 0.479
control_flow gen 4 0 8 0.486
asdl_generated gen 11 0 12 0.912
varargs gen 55 45 58 0.934
tuple_return_value gen 4 0 4 0.956
escape gen 8 4 8 1.003
pea_hello gen NA NA 11 NA

raw benchmark files