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
classes gen 0 3 26 0.000
fib_iter gen 8 3 933 0.008
asdl_generated gen 4 12 377 0.010
modules gen 2 2 185 0.010
fib_recursive gen 11 11 909 0.012
loops gen 4 3 308 0.012
parse gen 26 27 812 0.032
scoped_resource gen 43 46 1,026 0.042
tuple_return_value gen 15 18 195 0.078
files gen 7 7 75 0.097
containers gen 15 5 126 0.122
gc_stack_roots gen 2 2 8 0.212
length gen 46 41 206 0.224
cartesian gen 88 82 335 0.263
escape gen 99 105 360 0.275
cgi gen 242 267 520 0.465
varargs gen 12 15 21 0.556
control_flow gen 208 158 116 1.789
pea_hello gen NA NA 9 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
parse gen 3.7 3.8 9.1 0.40
gc_stack_roots gen 3.4 3.5 8.4 0.41
asdl_generated gen 3.5 3.7 8.5 0.42
cartesian gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 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
tuple_return_value gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
loops gen 3.7 3.9 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
containers gen 0 10 16 0.000
control_flow gen 0 4 4 0.000
fib_iter gen 0 5 12 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 0 12 0.000
length gen 0 4 12 0.000
loops gen 0 0 4 0.000
modules gen 0 0 16 0.000
classes gen 3 0 11 0.286
scoped_resource gen 4 0 8 0.489
asdl_generated gen 7 0 12 0.604
varargs gen 54 50 58 0.927
tuple_return_value gen 4 0 4 0.960
escape gen 8 0 8 0.991
cartesian gen 4 4 4 1.005
cgi gen 12 0 12 1.014
parse gen 4 0 4 1.081
pea_hello gen NA NA 9 NA

raw benchmark files