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 2 11 0.000
modules gen 1 1 187 0.005
fib_iter gen 7 8 937 0.007
loops gen 3 2 303 0.009
fib_recursive gen 9 10 891 0.010
asdl_generated gen 11 11 395 0.027
parse gen 27 25 775 0.035
classes gen 1 2 27 0.038
scoped_resource gen 46 42 1,033 0.045
files gen 5 7 75 0.060
containers gen 9 7 123 0.072
tuple_return_value gen 17 16 190 0.091
length gen 41 39 210 0.196
cartesian gen 85 74 333 0.254
escape gen 100 121 361 0.276
cgi gen 256 266 528 0.485
varargs gen 18 17 24 0.740
control_flow gen 207 161 117 1.769
pea_hello gen NA NA 13 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
escape gen 3.5 3.7 8.5 0.42
cgi gen 3.5 3.5 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
files gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.9 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
fib_iter gen 3.7 3.7 8.4 0.44
length gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
fib_recursive gen 3.9 3.7 8.4 0.47
containers gen 28.6 28.9 49.2 0.58
varargs gen 5.6 5.4 8.5 0.66
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 0 3 0.000
modules gen 1 1 8 0.107
loops gen 1 1 7 0.135
fib_iter gen 1 0 7 0.137
containers gen 3 3 19 0.156
scoped_resource gen 2 3 11 0.182
classes gen 2 1 10 0.207
gc_stack_roots gen 2 0 8 0.218
fib_recursive gen 2 1 9 0.218
tuple_return_value gen 2 3 9 0.226
parse gen 3 2 10 0.298
cgi gen 3 3 9 0.333
files gen 3 1 8 0.340
length gen 3 7 8 0.376
control_flow gen 2 1 5 0.400
varargs gen 22 21 28 0.775
cartesian gen 7 12 6 1.166
escape gen 7 5 5 1.394
pea_hello gen NA NA 5 NA

raw benchmark files