summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/hana/benchmark/including/compile.erb.json
blob: 2441a4ee1ffda65bfe4746fad2dc2f912e22a722 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<%
  def self.avg(xs)
    xs.inject(0, :+) / xs.length
  end

  def self.amortize(file)
    # We remove the first one to mitigate cache effects
    times = time_compilation(file, 6.times)
    times.shift
    avg(times.map { |_, t| t })
  end
%>

{
  "chart": {
    "type": "column"
  },
  "legend": {
    "enabled": false
  },
  "xAxis": {
    "type": "category"
  },
  "title": {
    "text": "Including various metaprogramming libraries"
  },
  "plotOptions": {
    "series": {
      "borderWidth": 0,
      "dataLabels": {
        "enabled": true,
        "format": "{point.y:.5f}s"
      }
    }
  },
  "series": [{
    "name": "Include time",
    "colorByPoint": true,
    "data": [
      {
        "name": "Baseline (no includes)",
        "y": <%= amortize('baseline.erb.cpp') %>
      }, {
        "name": "Boost.Hana",
        "y": <%= amortize('hana.erb.cpp') %>
      }

      <% if cmake_bool("@Boost_FOUND@") %>
      , {
        "name": "Boost.MPL",
        "y": <%= amortize('mpl.erb.cpp') %>
      }, {
        "name": "Boost.Fusion",
        "y": <%= amortize('fusion.erb.cpp') %>
      }
      <% end %>

      <% if cmake_bool("@MPL11_FOUND@") %>
      , {
        "name": "MPL11",
        "y": <%= amortize('mpl11.erb.cpp') %>
      }
      <% end %>

      <% if cmake_bool("@Meta_FOUND@") %>
      , {
        "name": "Meta",
        "y": <%= amortize('meta.erb.cpp') %>
      }
      <% end %>
    ]
  }]
}