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
gc_stack_roots gen 0 0 19 0.000
fib_iter gen 4 8 902 0.004
modules gen 2 2 191 0.009
fib_recursive gen 11 11 888 0.012
loops gen 4 3 309 0.013
asdl_generated gen 11 11 389 0.028
parse gen 27 27 775 0.035
scoped_resource gen 44 37 1,050 0.042
files gen 4 4 79 0.046
tuple_return_value gen 15 18 197 0.078
containers gen 11 9 126 0.090
classes gen 3 0 27 0.118
length gen 36 46 210 0.173
cartesian gen 83 85 335 0.248
escape gen 97 100 355 0.273
cgi gen 271 267 523 0.518
varargs gen 20 16 32 0.640
control_flow gen 210 161 133 1.582
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.3 12.5 0.36
gc_stack_roots gen 3.4 3.4 8.5 0.40
modules gen 3.5 3.7 8.7 0.41
escape gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 8.8 0.43
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.4 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.9 3.8 8.4 0.47
files gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.6 5.4 8.5 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
asdl_generated gen 0 0 8 0.000
classes gen 0 4 12 0.000
control_flow gen 0 0 8 0.000
fib_recursive gen 0 0 4 0.000
loops gen 0 0 8 0.000
modules gen 0 0 4 0.000
containers gen 4 5 20 0.187
parse gen 4 0 12 0.320
scoped_resource gen 4 8 8 0.499
cgi gen 4 0 8 0.507
files gen 4 4 4 0.914
varargs gen 45 49 48 0.939
fib_iter gen 4 0 4 0.945
tuple_return_value gen 4 0 4 0.951
escape gen 8 4 8 1.014
length gen 8 0 8 1.018
cartesian gen 8 0 4 2.081
gc_stack_roots gen 2 2 0 inf
pea_hello gen NA NA 11 NA

raw benchmark files