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 6 6 939 0.006
loops gen 2 3 310 0.008
modules gen 2 2 190 0.009
fib_recursive gen 11 10 889 0.012
asdl_generated gen 6 10 392 0.015
classes gen 1 2 31 0.033
parse gen 27 24 800 0.034
scoped_resource gen 41 43 1,032 0.040
containers gen 5 7 121 0.040
files gen 5 8 77 0.067
tuple_return_value gen 18 15 198 0.092
gc_stack_roots gen 2 1 12 0.143
length gen 42 37 211 0.199
cartesian gen 83 79 349 0.238
escape gen 96 99 358 0.269
cgi gen 264 262 535 0.493
varargs gen 17 16 30 0.575
control_flow gen 211 160 116 1.817
pea_hello gen NA NA 10 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.5 8.4 0.41
modules gen 3.5 3.5 8.7 0.41
cartesian gen 3.5 3.5 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
cgi gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.5 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 0 1 7 0.000
gc_stack_roots gen 0 1 8 0.000
modules gen 0 0 7 0.000
control_flow gen 1 2 7 0.143
fib_iter gen 2 1 8 0.236
classes gen 2 1 8 0.254
files gen 2 0 7 0.296
loops gen 1 0 4 0.300
containers gen 7 3 21 0.323
length gen 3 8 9 0.333
parse gen 3 3 9 0.333
tuple_return_value gen 1 3 3 0.335
asdl_generated gen 5 1 6 0.836
varargs gen 22 23 23 0.938
cgi gen 6 6 6 0.999
scoped_resource gen 6 3 6 1.003
escape gen 10 4 6 1.672
cartesian gen 9 7 5 1.798
pea_hello gen NA NA 7 NA

raw benchmark files