33f2b4cf2f
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.
32 lines
779 B
JSON
32 lines
779 B
JSON
<%
|
|
exec = (0..100).step(10).to_a
|
|
fusion = (0..50).step(10).to_a
|
|
%>
|
|
|
|
{
|
|
"title": {
|
|
"text": "Runtime behavior of fold_left"
|
|
},
|
|
"series": [
|
|
{
|
|
"name": "hana::tuple",
|
|
"data": <%= time_execution('execute.hana.tuple.erb.cpp', exec) %>
|
|
}, {
|
|
"name": "std::vector",
|
|
"data": <%= time_execution('execute.std.vector.erb.cpp', exec) %>
|
|
}, {
|
|
"name": "std::array",
|
|
"data": <%= time_execution('execute.std.array.erb.cpp', exec) %>
|
|
}
|
|
|
|
<% if cmake_bool("@Boost_FOUND@") %>
|
|
, {
|
|
"name": "fusion::vector",
|
|
"data": <%= time_execution('execute.fusion.vector.erb.cpp', fusion) %>
|
|
}, {
|
|
"name": "fusion::list",
|
|
"data": <%= time_execution('execute.fusion.list.erb.cpp', fusion) %>
|
|
}
|
|
<% end %>
|
|
]
|
|
} |