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 2 20 0.000
fib_iter gen 4 4 899 0.004
modules gen 2 2 193 0.009
fib_recursive gen 11 7 898 0.012
loops gen 4 3 304 0.012
asdl_generated gen 11 8 398 0.027
parse gen 27 23 757 0.035
scoped_resource gen 44 42 1,044 0.042
files gen 4 7 75 0.048
tuple_return_value gen 19 18 195 0.100
classes gen 3 4 27 0.119
containers gen 16 0 120 0.130
length gen 46 45 211 0.218
cartesian gen 87 83 346 0.252
escape gen 97 98 361 0.268
cgi gen 249 263 514 0.485
varargs gen 27 16 24 1.122
control_flow gen 210 162 113 1.850
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
cgi gen 3.4 3.7 8.4 0.41
gc_stack_roots gen 3.4 3.4 8.4 0.41
parse gen 3.8 3.9 9.0 0.42
cartesian gen 3.7 3.5 8.5 0.43
length gen 3.7 3.5 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.5 8.5 0.45
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.5 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.9 3.7 8.5 0.46
containers gen 28.7 28.7 49.1 0.58
varargs gen 5.5 5.2 8.4 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
asdl_generated gen 0 4 4 0.000
classes gen 0 0 12 0.000
containers gen 0 14 24 0.000
control_flow gen 0 0 12 0.000
fib_recursive gen 0 4 4 0.000
length gen 0 0 4 0.000
loops gen 0 0 4 0.000
modules gen 0 0 4 0.000
tuple_return_value gen 0 0 8 0.000
scoped_resource gen 4 4 12 0.333
cgi gen 4 4 12 0.336
parse gen 4 5 12 0.368
files gen 4 0 8 0.460
fib_iter gen 4 4 8 0.472
varargs gen 39 49 56 0.687
cartesian gen 4 4 4 0.984
escape gen 8 4 8 1.003
gc_stack_roots gen 2 0 0 inf
pea_hello gen NA NA 7 NA

raw benchmark files