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
modules gen 0 1 200 0.000
fib_iter gen 6 8 898 0.006
loops gen 3 1 310 0.009
fib_recursive gen 10 10 915 0.011
asdl_generated gen 9 8 399 0.022
parse gen 23 26 783 0.030
scoped_resource gen 40 39 1,064 0.038
containers gen 6 5 113 0.052
gc_stack_roots gen 1 2 15 0.058
classes gen 2 2 29 0.072
files gen 6 6 77 0.082
tuple_return_value gen 17 16 189 0.090
length gen 40 41 212 0.190
cartesian gen 85 84 339 0.252
escape gen 102 96 357 0.286
cgi gen 269 266 524 0.513
varargs gen 16 21 23 0.704
control_flow gen 206 159 109 1.888
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.3 4.3 12.2 0.35
cartesian gen 3.5 3.7 8.5 0.42
length gen 3.5 3.8 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.9 49.2 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
fib_recursive gen 1 1 9 0.108
classes gen 1 1 9 0.115
loops gen 1 2 6 0.154
files gen 1 1 6 0.174
control_flow gen 2 4 11 0.182
cgi gen 1 4 5 0.200
containers gen 6 5 29 0.202
gc_stack_roots gen 1 0 4 0.204
tuple_return_value gen 2 2 9 0.225
fib_iter gen 2 0 6 0.315
asdl_generated gen 2 3 5 0.388
modules gen 2 1 4 0.427
escape gen 4 7 6 0.668
length gen 5 4 7 0.715
cartesian gen 6 3 8 0.752
varargs gen 23 20 30 0.775
parse gen 7 1 8 0.853
scoped_resource gen 7 6 7 0.983
pea_hello gen NA NA 9 NA

raw benchmark files