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 8 8 891 0.010
modules gen 2 2 188 0.010
fib_recursive gen 11 11 881 0.012
loops gen 5 0 303 0.016
asdl_generated gen 12 12 386 0.030
parse gen 27 24 759 0.035
scoped_resource gen 48 38 1,032 0.047
containers gen 9 4 91 0.095
files gen 8 9 81 0.105
tuple_return_value gen 21 11 191 0.108
classes gen 4 0 24 0.152
gc_stack_roots gen 2 2 12 0.156
length gen 45 46 218 0.206
escape gen 97 96 368 0.262
cartesian gen 92 75 336 0.274
cgi gen 259 272 514 0.504
varargs gen 16 24 16 0.993
control_flow gen 204 165 108 1.895
pea_hello gen NA NA 11 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.4 8.5 0.40
loops gen 3.4 3.8 8.5 0.40
cgi gen 3.4 3.7 8.4 0.41
fib_iter gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.0 0.42
modules gen 3.7 3.7 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.8 3.8 8.5 0.45
cartesian gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.9 3.7 8.5 0.46
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 4 0.000
cartesian gen 0 12 4 0.000
cgi gen 0 0 16 0.000
classes gen 0 4 16 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 4 0.000
gc_stack_roots gen 0 0 8 0.000
loops gen 0 3 8 0.000
modules gen 0 0 8 0.000
scoped_resource gen 0 8 4 0.000
tuple_return_value gen 0 7 8 0.000
containers gen 9 12 60 0.146
control_flow gen 4 0 16 0.251
parse gen 4 4 12 0.318
varargs gen 52 44 65 0.807
escape gen 12 8 4 3.019
length gen 0 0 0 NA
pea_hello gen NA NA 7 NA

raw benchmark files