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
loops gen 0 3 298 0.000
fib_iter gen 4 4 897 0.004
modules gen 2 2 186 0.010
fib_recursive gen 11 7 895 0.012
asdl_generated gen 11 7 386 0.028
containers gen 4 10 128 0.031
parse gen 27 23 774 0.034
scoped_resource gen 49 42 1,076 0.045
tuple_return_value gen 19 19 210 0.092
classes gen 3 3 34 0.099
files gen 8 7 70 0.111
length gen 37 45 216 0.171
gc_stack_roots gen 2 2 8 0.213
cartesian gen 89 83 332 0.267
escape gen 100 94 354 0.284
cgi gen 255 264 530 0.481
varargs gen 17 4 28 0.585
control_flow gen 207 157 120 1.729
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.5 4.3 12.3 0.36
gc_stack_roots gen 3.5 3.5 8.4 0.42
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.5 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
fib_iter gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
loops gen 3.9 3.8 8.7 0.45
tuple_return_value gen 3.8 3.7 8.3 0.46
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 8 0.000
cgi gen 0 4 4 0.000
classes gen 0 0 8 0.000
control_flow gen 0 4 4 0.000
files gen 0 0 15 0.000
gc_stack_roots gen 0 0 12 0.000
modules gen 0 0 12 0.000
scoped_resource gen 0 4 8 0.000
tuple_return_value gen 0 0 12 0.000
escape gen 4 8 12 0.337
loops gen 4 0 8 0.461
parse gen 4 4 8 0.477
fib_iter gen 4 4 8 0.484
cartesian gen 4 4 8 0.504
containers gen 12 5 20 0.588
length gen 7 0 8 0.923
varargs gen 50 60 52 0.944
fib_recursive gen 0 4 0 NA
pea_hello gen NA NA 8 NA

raw benchmark files