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 25 0.000
modules gen 0 2 191 0.000
fib_iter gen 8 4 892 0.009
loops gen 4 0 304 0.012
fib_recursive gen 11 11 881 0.012
asdl_generated gen 11 4 389 0.027
parse gen 23 27 774 0.030
scoped_resource gen 43 46 1,037 0.042
files gen 4 7 74 0.050
containers gen 10 3 113 0.090
tuple_return_value gen 19 18 201 0.095
length gen 34 45 208 0.163
gc_stack_roots gen 2 2 8 0.217
escape gen 102 95 390 0.262
cartesian gen 90 85 333 0.270
cgi gen 264 263 525 0.503
varargs gen 27 28 16 1.661
control_flow gen 207 154 115 1.802
pea_hello gen NA NA 11 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.4 8.4 0.41
cartesian gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.7 8.7 0.42
parse gen 3.9 3.9 9.2 0.43
escape gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
length gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
cgi gen 3.7 3.7 8.3 0.44
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
containers gen 28.7 28.5 49.1 0.58
varargs gen 5.2 5.6 8.5 0.62
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 7 16 0.000
cartesian gen 0 0 12 0.000
fib_iter gen 0 4 8 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 3 12 0.000
containers gen 5 10 31 0.163
classes gen 3 0 14 0.224
modules gen 2 0 8 0.225
files gen 4 0 12 0.298
escape gen 4 8 12 0.330
cgi gen 4 4 8 0.500
control_flow gen 4 8 8 0.502
varargs gen 39 37 65 0.593
parse gen 8 0 8 0.956
scoped_resource gen 4 0 4 0.985
length gen 11 0 8 1.412
pea_hello gen NA NA 7 NA
tuple_return_value gen 0 0 0 NA

raw benchmark files