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 4 23 0.000
gc_stack_roots gen 0 2 4 0.000
modules gen 0 0 185 0.000
fib_iter gen 4 8 1,269 0.003
fib_recursive gen 11 11 897 0.012
loops gen 4 0 299 0.013
asdl_generated gen 8 7 387 0.019
parse gen 31 27 766 0.040
scoped_resource gen 48 38 1,032 0.047
files gen 4 7 77 0.048
containers gen 8 10 123 0.064
tuple_return_value gen 19 18 194 0.100
length gen 41 46 206 0.198
cartesian gen 80 71 340 0.234
escape gen 102 99 358 0.284
cgi gen 254 241 523 0.486
varargs gen 20 8 36 0.567
control_flow gen 210 164 110 1.914
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.3 4.5 12.4 0.35
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.5 8.5 0.42
length gen 3.5 3.8 8.5 0.42
asdl_generated gen 3.5 3.8 8.4 0.42
loops 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.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.7 9.0 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
files gen 3.9 3.8 8.5 0.46
fib_iter gen 3.9 3.8 8.4 0.47
containers gen 28.7 28.7 49.1 0.58
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 12 8 0.000
control_flow gen 0 0 12 0.000
fib_recursive gen 0 0 8 0.000
loops gen 0 3 8 0.000
parse gen 0 0 12 0.000
scoped_resource gen 0 8 12 0.000
tuple_return_value gen 0 0 4 0.000
gc_stack_roots gen 2 0 16 0.111
modules gen 2 2 12 0.160
classes gen 3 0 16 0.211
fib_iter gen 4 0 12 0.316
escape gen 4 4 12 0.324
containers gen 8 5 20 0.384
files gen 4 0 8 0.479
length gen 4 0 8 0.506
asdl_generated gen 4 4 4 0.944
varargs gen 45 57 44 1.021
cartesian gen 12 16 0 inf
pea_hello gen NA NA 9 NA

raw benchmark files