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
modules gen 1 2 192 0.005
fib_iter gen 8 8 892 0.009
fib_recursive gen 10 10 909 0.011
loops gen 4 2 309 0.013
asdl_generated gen 11 9 383 0.028
parse gen 32 23 777 0.041
scoped_resource gen 46 44 1,044 0.044
containers gen 7 7 118 0.060
classes gen 2 3 29 0.082
files gen 8 7 76 0.100
tuple_return_value gen 21 21 204 0.105
gc_stack_roots gen 2 2 9 0.194
length gen 42 44 212 0.197
cartesian gen 90 85 368 0.245
escape gen 99 99 370 0.268
cgi gen 254 272 530 0.480
varargs gen 24 26 21 1.166
control_flow gen 211 162 113 1.868
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.3 4.3 12.2 0.35
gc_stack_roots gen 3.4 3.4 8.4 0.41
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.4 0.44
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.8 8.4 0.45
escape gen 3.8 3.7 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.8 8.7 0.45
containers gen 28.9 28.9 48.9 0.59
varargs gen 5.6 5.6 8.3 0.68
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 0 12 0.000
classes gen 1 1 11 0.108
parse gen 1 5 9 0.112
loops gen 1 1 8 0.121
files gen 1 1 8 0.136
fib_iter gen 1 1 7 0.142
modules gen 1 0 6 0.156
containers gen 5 4 32 0.158
tuple_return_value gen 1 0 6 0.169
fib_recursive gen 1 1 5 0.198
control_flow gen 2 2 9 0.221
asdl_generated gen 2 3 8 0.243
scoped_resource gen 3 4 9 0.329
length gen 3 4 9 0.333
varargs gen 18 18 33 0.556
cgi gen 5 1 7 0.715
cartesian gen 5 4 5 1.001
escape gen 11 8 10 1.095
pea_hello gen NA NA 7 NA

raw benchmark files