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
fib_iter gen 8 8 884 0.009
modules gen 2 2 171 0.010
fib_recursive gen 11 11 878 0.012
loops gen 4 3 292 0.012
asdl_generated gen 11 11 375 0.028
parse gen 22 27 761 0.029
scoped_resource gen 42 38 1,026 0.041
tuple_return_value gen 12 18 180 0.069
containers gen 8 4 108 0.071
files gen 8 8 71 0.107
classes gen 3 0 19 0.165
length gen 37 32 208 0.180
cartesian gen 83 81 337 0.247
escape gen 101 100 349 0.291
gc_stack_roots gen 2 2 4 0.435
cgi gen 307 256 507 0.605
control_flow gen 212 162 107 1.983
varargs gen 27 20 12 2.240

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 10.7 0.41
gc_stack_roots gen 3.4 3.4 7.1 0.48
cgi gen 3.5 3.7 7.1 0.50
parse gen 3.8 3.7 7.5 0.51
asdl_generated gen 3.5 3.7 6.9 0.51
loops gen 3.7 3.8 7.1 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
control_flow gen 3.7 3.8 6.9 0.53
escape gen 3.7 3.7 6.9 0.53
fib_iter gen 3.7 3.8 6.9 0.53
cartesian gen 3.5 3.5 6.7 0.53
length gen 3.8 3.7 7.1 0.54
modules gen 3.8 3.7 7.1 0.54
fib_recursive gen 3.8 3.7 6.9 0.55
tuple_return_value gen 3.8 3.8 6.9 0.55
files gen 3.9 3.8 7.1 0.56
containers gen 28.5 28.7 47.6 0.60
varargs gen 5.6 5.4 6.8 0.83

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 8 0.000
classes gen 0 3 12 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 0 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
loops gen 0 0 8 0.000
modules gen 0 0 12 0.000
containers gen 8 11 28 0.274
cgi gen 4 12 12 0.335
parse gen 7 0 16 0.454
escape gen 4 4 8 0.492
varargs gen 39 47 61 0.640
tuple_return_value gen 8 0 12 0.687
scoped_resource gen 8 8 8 0.951
cartesian gen 8 4 8 0.988
length gen 7 12 0 inf

raw benchmark files