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
modules 0 183 0.000
fib_iter 8 888 0.009
fib_recursive 11 878 0.012
loops 4 291 0.013
asdl_generated 11 378 0.028
parse 22 776 0.029
scoped_resource 47 1,029 0.046
containers 8 117 0.067
tuple_return_value 17 186 0.089
files 8 69 0.110
length 37 201 0.186
classes 3 16 0.203
cartesian 82 327 0.252
escape 107 350 0.306
cgi 262 511 0.512
varargs 12 8 1.432
control_flow 209 110 1.907

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.3 10.5 0.41
parse 3.7 7.6 0.48
cartesian 3.7 7.1 0.52
cgi 3.7 7.1 0.52
asdl_generated 3.7 6.9 0.53
tuple_return_value 3.7 6.9 0.53
loops 3.8 7.1 0.54
scoped_resource 3.8 7.1 0.54
escape 3.7 6.8 0.54
control_flow 3.8 6.9 0.55
fib_iter 3.8 6.9 0.55
fib_recursive 3.8 6.9 0.55
files 3.8 6.9 0.55
length 3.8 6.9 0.55
modules 3.8 6.9 0.55
containers 28.5 47.8 0.60
varargs 5.5 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name C++ Python C++ : Python
asdl_generated 0 8 0.000
classes 0 16 0.000
control_flow 0 4 0.000
escape 0 4 0.000
fib_iter 0 8 0.000
fib_recursive 0 8 0.000
files 0 8 0.000
loops 0 4 0.000
containers 8 20 0.400
cgi 4 8 0.496
tuple_return_value 4 8 0.523
varargs 54 65 0.835
cartesian 8 8 0.983
length 8 8 1.032
parse 7 4 1.873
modules 2 0 inf
scoped_resource 0 0 NA

raw benchmark files