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 3 36 0.000
containers gen 0 5 109 0.000
gc_stack_roots gen 0 2 16 0.000
fib_iter gen 8 4 931 0.008
modules gen 2 0 184 0.010
fib_recursive gen 11 11 893 0.012
loops gen 4 3 302 0.012
asdl_generated gen 7 7 376 0.019
scoped_resource gen 34 45 1,037 0.033
parse gen 27 27 773 0.035
files gen 4 4 73 0.050
tuple_return_value gen 15 15 201 0.077
length gen 41 46 218 0.189
cartesian gen 88 75 349 0.252
escape gen 101 100 358 0.283
cgi gen 253 252 519 0.488
varargs gen 20 23 32 0.634
control_flow gen 208 161 119 1.753
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.3 12.5 0.36
gc_stack_roots gen 3.5 3.5 8.5 0.42
cgi gen 3.5 3.7 8.4 0.42
fib_recursive gen 3.5 3.7 8.4 0.42
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.7 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
files gen 3.8 3.7 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
modules gen 3.9 3.7 8.7 0.45
containers gen 28.4 28.5 49.1 0.58
varargs gen 5.5 5.6 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
control_flow gen 0 0 4 0.000
fib_iter gen 0 4 12 0.000
fib_recursive gen 0 0 4 0.000
loops gen 0 0 8 0.000
modules gen 0 2 12 0.000
asdl_generated gen 4 4 16 0.225
files gen 4 4 12 0.299
cgi gen 4 0 12 0.336
gc_stack_roots gen 2 0 4 0.428
containers gen 16 10 36 0.437
parse gen 4 0 8 0.488
classes gen 3 0 4 0.811
varargs gen 45 42 48 0.929
escape gen 4 4 4 1.006
scoped_resource gen 13 0 4 3.215
cartesian gen 4 12 0 inf
length gen 4 0 0 inf
tuple_return_value gen 4 4 0 inf
pea_hello gen NA NA 9 NA

raw benchmark files