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
gc_stack_roots gen 0 0 15 0.000
fib_iter gen 7 7 943 0.007
modules gen 2 1 199 0.009
loops gen 3 2 302 0.009
fib_recursive gen 11 10 889 0.012
asdl_generated gen 9 10 389 0.022
classes gen 1 1 30 0.026
parse gen 28 25 776 0.036
scoped_resource gen 47 43 1,051 0.044
containers gen 9 5 122 0.073
files gen 6 7 80 0.078
tuple_return_value gen 16 12 194 0.084
length gen 42 45 212 0.198
cartesian gen 86 82 335 0.257
escape gen 101 97 355 0.286
varargs gen 11 18 27 0.408
cgi gen 271 255 542 0.500
control_flow gen 211 160 112 1.887
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.5 12.3 0.36
cartesian gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
gc_stack_roots gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.7 8.5 0.46
control_flow gen 3.9 3.9 8.4 0.47
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.4 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
fib_recursive gen 0 1 6 0.000
modules gen 0 1 8 0.000
scoped_resource gen 1 3 10 0.101
loops gen 1 1 9 0.103
cgi gen 1 3 9 0.111
containers gen 3 6 25 0.119
fib_iter gen 1 1 7 0.135
files gen 1 0 5 0.207
parse gen 2 2 9 0.223
classes gen 2 2 9 0.260
tuple_return_value gen 3 6 11 0.276
control_flow gen 3 2 10 0.300
asdl_generated gen 2 1 6 0.323
gc_stack_roots gen 2 2 5 0.347
length gen 3 1 7 0.425
escape gen 4 7 8 0.498
cartesian gen 6 4 8 0.750
varargs gen 28 21 26 1.078
pea_hello gen NA NA 6 NA

raw benchmark files