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 2 174 0.000
fib_iter gen 4 8 906 0.004
fib_recursive gen 11 11 873 0.012
loops gen 4 3 291 0.013
asdl_generated gen 11 5 375 0.029
parse gen 29 22 775 0.037
scoped_resource gen 44 43 1,047 0.042
containers gen 12 4 118 0.100
files gen 8 7 72 0.107
tuple_return_value gen 21 14 190 0.108
classes gen 4 3 23 0.154
length gen 45 40 200 0.225
cartesian gen 89 76 325 0.272
escape gen 105 100 337 0.313
gc_stack_roots gen 2 2 4 0.438
cgi gen 267 259 510 0.524
varargs gen 17 12 24 0.691
control_flow gen 214 160 111 1.935

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.6 10.9 0.41
asdl_generated gen 3.5 3.7 7.1 0.50
cartesian gen 3.5 3.7 6.9 0.51
parse gen 3.9 3.8 7.6 0.52
cgi gen 3.7 3.5 7.1 0.52
loops gen 3.8 3.8 7.2 0.53
escape gen 3.7 3.5 6.9 0.53
fib_iter gen 3.7 3.8 6.9 0.53
gc_stack_roots gen 3.7 3.4 6.9 0.53
modules gen 3.7 3.8 6.9 0.53
scoped_resource gen 3.8 3.7 7.1 0.54
control_flow gen 3.8 3.7 6.9 0.55
files gen 3.8 3.8 6.9 0.55
length gen 3.8 3.8 6.9 0.55
tuple_return_value gen 3.8 3.7 6.9 0.55
fib_recursive gen 3.8 3.9 6.7 0.57
containers gen 28.6 28.7 47.4 0.60
varargs gen 5.5 5.4 6.8 0.81

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 5 4 0.000
classes gen 0 0 8 0.000
control_flow gen 0 4 4 0.000
escape gen 0 4 12 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 0 4 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 4 8 0.000
loops gen 0 0 4 0.000
parse gen 0 4 4 0.000
tuple_return_value gen 0 5 4 0.000
modules gen 2 0 8 0.226
containers gen 4 11 16 0.241
scoped_resource gen 4 4 12 0.334
cgi gen 4 8 12 0.334
fib_iter gen 4 0 8 0.476
cartesian gen 4 12 4 1.003
varargs gen 50 53 48 1.037

raw benchmark files