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 1 16 0.000
modules gen 1 0 186 0.005
fib_iter gen 8 6 895 0.008
fib_recursive gen 9 11 895 0.010
loops gen 4 1 298 0.012
asdl_generated gen 10 8 391 0.025
parse gen 29 23 775 0.038
containers gen 5 5 113 0.045
scoped_resource gen 47 42 1,033 0.046
classes gen 2 1 31 0.051
files gen 7 7 78 0.085
tuple_return_value gen 17 18 194 0.088
length gen 44 42 210 0.208
cartesian gen 84 82 349 0.242
escape gen 100 97 357 0.280
varargs gen 12 17 27 0.438
cgi gen 268 265 526 0.509
control_flow gen 210 160 115 1.820
pea_hello gen NA NA 10 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
gc_stack_roots gen 3.4 3.5 8.5 0.40
cgi gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.5 8.4 0.42
fib_recursive gen 3.5 3.8 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.7 8.7 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.9 49.0 0.59
varargs gen 5.6 5.4 8.4 0.67
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 1 8 0.000
fib_iter gen 0 2 6 0.000
loops gen 0 2 9 0.000
scoped_resource gen 0 4 11 0.000
modules gen 1 2 12 0.072
parse gen 1 4 10 0.100
files gen 1 0 7 0.134
classes gen 2 2 8 0.198
fib_recursive gen 2 0 9 0.217
containers gen 7 5 30 0.238
asdl_generated gen 1 3 4 0.243
tuple_return_value gen 2 0 8 0.251
cgi gen 2 5 7 0.286
length gen 2 3 7 0.291
gc_stack_roots gen 2 1 4 0.429
cartesian gen 7 4 9 0.771
escape gen 6 6 7 0.857
varargs gen 28 22 26 1.062
pea_hello gen NA NA 8 NA

raw benchmark files