File: bench.ml

package info (click to toggle)
dose3 3.3~beta1-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,936 kB
  • ctags: 2,055
  • sloc: ml: 12,421; ansic: 433; makefile: 332; python: 164; perl: 139; sh: 43
file content (67 lines) | stat: -rw-r--r-- 2,477 bytes parent folder | download | duplicates (5)
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
(**************************************************************************************)
(*  Copyright (C) 2010 Pietro Abate <pietro.abate@pps.jussieu.fr>                     *)
(*  Copyright (C) 2010 Mancoosi Project                                               *)
(*                                                                                    *)
(*  This library is free software: you can redistribute it and/or modify              *)
(*  it under the terms of the GNU Lesser General Public License as                    *)
(*  published by the Free Software Foundation, either version 3 of the                *)
(*  License, or (at your option) any later version.  A special linking                *)
(*  exception to the GNU Lesser General Public License applies to this                *)
(*  library, see the COPYING file for more information.                               *)
(**************************************************************************************)

open Common

let run () =
  let latency ?(reps=4) s f = Benchmark.latency1 ~name:s (Int64.of_int reps) f in 

  let ch = Input.open_file "tests/Packages" in
  let extras_properties = [
      ("maintainer", ("maintainer", `String None));
      ("size", ("size", `Nat None));
      ("installed-Size", ("installedsize", `Nat None))
    ]
  in
  let extras = List.map fst extras_properties in

  let ipr_list = Packages.parse_packages_in ~extras:extras (fun x -> x) ch in
  let tables = Debcudf.init_tables ipr_list in
  let cudf_list = List.map (Debcudf.tocudf ~extras:extras_properties tables) ipr_list in
  let universe = Cudf.load_universe cudf_list in

  let test_ipr_list =
    latency ~reps:20 "Packages.parse_packages_in" (fun () ->
      Packages.parse_packages_in ~extras:extras (fun x -> x) ch
    )
  in
  let test_tables =
   latency ~reps:10 "Debcudf.init_tables" (fun () ->
    Debcudf.init_tables ipr_list
   )
  in 
  let test_cudf_list =
    latency "Debcudf.tocudf" (fun () ->
      List.map (Debcudf.tocudf ~extras:extras_properties tables) ipr_list
    )
  in
  let test_universe =
    latency ~reps:20 "Cudf.load_universe" (fun () ->
      Cudf.load_universe cudf_list
    )
  in
  let test_maps =
    latency ~reps:10 "CudfAdd.build_maps" (fun () ->
      CudfAdd.build_maps universe
    )
  in
  List.fold_left Benchmark.merge [] [
    (* test_ipr_list (); *)
    test_tables ();
    test_cudf_list ();
    test_universe ();
    test_maps ()
  ] 
;;

ExtBenchmark.main run ;;