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 190 0.000
fib_iter gen 6 8 936 0.006
loops gen 3 1 296 0.009
fib_recursive gen 9 11 891 0.010
asdl_generated gen 9 10 391 0.022
parse gen 29 26 783 0.037
scoped_resource gen 45 41 1,036 0.043
containers gen 7 7 118 0.057
classes gen 2 1 31 0.066
files gen 5 5 77 0.069
tuple_return_value gen 19 15 192 0.099
gc_stack_roots gen 2 1 12 0.136
length gen 44 42 215 0.205
cartesian gen 86 79 334 0.257
escape gen 102 102 360 0.283
cgi gen 249 263 520 0.479
varargs gen 16 12 24 0.672
control_flow gen 206 162 120 1.716
pea_hello gen NA NA 12 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
cgi gen 3.5 3.7 8.5 0.42
tuple_return_value gen 3.5 3.8 8.3 0.43
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
gc_stack_roots gen 3.7 3.5 8.5 0.43
length gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.7 0.44
modules gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.9 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.9 8.4 0.45
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 1 6 0.000
tuple_return_value gen 0 4 8 0.000
length gen 1 3 10 0.100
loops gen 1 2 9 0.101
parse gen 1 1 8 0.125
classes gen 1 2 7 0.145
containers gen 5 3 25 0.195
fib_recursive gen 2 0 10 0.195
scoped_resource gen 2 5 8 0.250
fib_iter gen 2 0 7 0.269
files gen 2 2 6 0.356
asdl_generated gen 2 1 5 0.387
modules gen 2 1 4 0.426
cartesian gen 6 7 10 0.599
escape gen 5 2 7 0.714
cgi gen 5 5 7 0.715
varargs gen 23 27 28 0.828
control_flow gen 3 1 3 1.000
pea_hello gen NA NA 6 NA

raw benchmark files