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 11 0.000
fib_iter gen 6 6 892 0.007
loops gen 3 3 309 0.009
modules gen 2 1 195 0.009
fib_recursive gen 9 10 893 0.010
asdl_generated gen 10 10 393 0.025
parse gen 28 23 773 0.037
scoped_resource gen 46 41 1,045 0.044
containers gen 8 5 119 0.068
files gen 7 6 76 0.087
tuple_return_value gen 17 12 190 0.091
classes gen 3 3 26 0.120
length gen 38 42 209 0.182
cartesian gen 85 83 337 0.251
escape gen 100 99 361 0.277
cgi gen 269 266 532 0.505
varargs gen 18 19 31 0.583
control_flow gen 205 161 119 1.727
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.3 12.3 0.36
modules gen 3.5 3.9 8.7 0.41
escape gen 3.5 3.8 8.4 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
gc_stack_roots gen 3.7 3.4 8.4 0.44
cgi gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.9 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
loops gen 3.8 3.7 8.4 0.45
length gen 3.9 3.9 8.4 0.47
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.5 5.5 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
classes gen 0 0 13 0.000
modules gen 0 1 9 0.000
files gen 1 2 8 0.119
fib_iter gen 1 2 9 0.120
containers gen 4 6 25 0.164
cgi gen 1 4 6 0.166
scoped_resource gen 2 4 11 0.182
tuple_return_value gen 2 6 9 0.215
asdl_generated gen 1 1 5 0.217
fib_recursive gen 2 1 9 0.226
gc_stack_roots gen 2 1 8 0.249
parse gen 2 4 8 0.252
loops gen 1 0 3 0.310
control_flow gen 3 3 7 0.426
length gen 7 4 10 0.702
varargs gen 21 21 22 0.958
escape gen 6 5 5 1.199
cartesian gen 7 3 4 1.764
pea_hello gen NA NA 9 NA

raw benchmark files