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 C++ Python C++ : Python
containers 0 70 0.000
modules 1 128 0.008
fib_iter 5 637 0.008
loops 2 203 0.011
fib_recursive 7 622 0.012
scoped_resource 7 546 0.013
asdl_generated 7 269 0.025
parse 20 552 0.036
files 5 48 0.094
classes 2 18 0.103
tuple_return_value 21 137 0.151
length 30 149 0.201
cartesian 61 237 0.258
escape 69 249 0.276
cgi 175 366 0.478
varargs 12 7 1.610
control_flow 144 75 1.924

Max Resident Set Size (MB)

Lower ratios are better. We use MB (powers of 10), not MiB (powers of 2).

example name C++ Python C++ : Python
classes 4.5 10.8 0.41
parse 3.9 7.7 0.50
asdl_generated 3.6 7.2 0.51
cartesian 3.7 7.2 0.51
cgi 3.7 7.0 0.52
loops 3.8 7.3 0.53
escape 3.7 7.0 0.53
modules 3.8 7.2 0.53
files 3.8 7.2 0.53
length 3.8 7.1 0.53
fib_recursive 3.8 7.1 0.53
scoped_resource 3.9 7.2 0.54
tuple_return_value 3.8 7.0 0.54
fib_iter 3.9 7.0 0.55
control_flow 3.9 7.1 0.55
containers 28.5 47.8 0.60
varargs 5.6 7.1 0.79

System Time (milliseconds)

Lower ratios are better.

example name C++ Python C++ : Python
asdl_generated 0 4 0.000
cartesian 0 4 0.000
control_flow 0 4 0.000
fib_recursive 0 4 0.000
files 0 4 0.000
loops 0 4 0.000
parse 0 4 0.000
containers 10 21 0.487
varargs 16 22 0.716
escape 4 0 inf
cgi 0 0 NA
classes 0 0 NA
fib_iter 0 0 NA
length 0 0 NA
modules 0 0 NA
scoped_resource 0 0 NA
tuple_return_value 0 0 NA

raw benchmark files