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 1 12 0.000
modules gen 1 0 195 0.005
loops gen 2 2 306 0.006
fib_iter gen 8 13 890 0.009
fib_recursive gen 11 9 915 0.012
asdl_generated gen 13 12 402 0.031
scoped_resource gen 45 48 1,057 0.042
parse gen 35 29 800 0.044
containers gen 9 5 141 0.062
tuple_return_value gen 19 19 218 0.088
classes gen 3 4 29 0.099
files gen 9 8 80 0.112
length gen 39 47 218 0.178
cartesian gen 83 85 342 0.244
escape gen 104 103 365 0.286
varargs gen 10 25 23 0.447
cgi gen 274 255 539 0.508
control_flow gen 214 164 122 1.761
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
gc_stack_roots gen 3.4 3.4 8.4 0.41
asdl_generated gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
fib_recursive gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.3 0.46
files gen 3.9 3.7 8.5 0.46
containers gen 28.9 28.6 49.1 0.59
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
fib_recursive gen 0 2 12 0.000
files gen 0 1 7 0.000
classes gen 1 1 11 0.087
fib_iter gen 1 0 10 0.101
modules gen 1 2 10 0.105
control_flow gen 1 1 8 0.124
containers gen 5 7 25 0.194
parse gen 2 2 10 0.199
asdl_generated gen 1 2 5 0.210
gc_stack_roots gen 2 1 8 0.245
tuple_return_value gen 2 1 8 0.254
loops gen 3 1 9 0.322
scoped_resource gen 4 0 8 0.495
cgi gen 4 7 5 0.799
escape gen 8 4 9 0.883
varargs gen 32 19 31 1.029
cartesian gen 12 9 11 1.098
length gen 8 3 5 1.593
pea_hello gen NA NA 6 NA

raw benchmark files