hana/benchmark/fold_left/compile.erb.json
Louis Dionne 33f2b4cf2f [Benchmarks] Improve transparency w.r.t Fusion algorithms
Specifically,

(1) We now benchmark with fusion::list too
(2) We now document our methodology for forcing the evaluation of algorithms

Note that we still use `as_list` and `as_vector` to force the evaluation
of algorithms instead of using e.g. `for_each`. This is because we want
to compare apples with apples, and for this we need to get a sequence of
computed values, not only for_each over the view. The disclaimer in the
tutorial saying "Fusion might encourage a different design" takes care
of warning people about the fact that we're not necessarily using
idiomatic Fusion, but not need to benchmark unfairly to try to
account for that.
2015-10-22 18:21:13 -04:00

62 lines
1.6 KiB
JSON

<%
hana = (0...50).step(5).to_a + (50..400).step(25).to_a
fusion = (0..50).step(5)
mpl = hana
mpl11 = (0...50).step(5).to_a + (50..500).step(25).to_a
meta = (0...50).step(5).to_a + (50..200).step(25).to_a
cexpr = (0...50).step(5).to_a + (50..200).step(25).to_a
%>
{
"title": {
"text": "Compile-time behavior of fold_left"
},
"series": [
{
"name": "hana::tuple",
"data": <%= time_compilation('compile.hana.tuple.erb.cpp', hana) %>
}, {
"name": "hana::basic_tuple",
"data": <%= time_compilation('compile.hana.basic_tuple.erb.cpp', hana) %>
}
<% if cmake_bool("@Boost_FOUND@") %>
, {
"name": "fusion::vector",
"data": <%= time_compilation('compile.fusion.vector.erb.cpp', fusion) %>
},{
"name": "fusion::list",
"data": <%= time_compilation('compile.fusion.list.erb.cpp', fusion) %>
}, {
"name": "mpl::vector",
"data": <%= time_compilation('compile.mpl.vector.erb.cpp', mpl) %>
}
<% end %>
<% if cmake_bool("@MPL11_FOUND@") %>
, {
"name": "mpl11::list",
"data": <%= time_compilation('compile.mpl11.list.erb.cpp', mpl11) %>
}
<% end %>
<% if cmake_bool("@Meta_FOUND@") %>
, {
"name": "meta::list",
"data": <%= time_compilation('compile.meta.list.erb.cpp', meta) %>
}
<% end %>
<% if false %>
, {
"name": "cexpr::list (recursive)",
"data": <%= time_compilation('compile.cexpr.recursive.erb.cpp', cexpr) %>
}, {
"name": "cexpr::list (unrolled)",
"data": <%= time_compilation('compile.cexpr.unrolled.erb.cpp', cexpr) %>
}
<% end %>
]
}