aboutsummaryrefslogtreecommitdiff
path: root/scripts/benchmark.scm
blob: 462d578cc0a9844e507b0822324c83acfb3f7ba0 (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
(add-to-load-path "module")
(use-modules (hnh util)
             (calp util app)
             (calp util config)
             (vcomponent)
             (vcomponent group)
             (vcomponent datetime)
             (datetime)
             (srfi srfi-41)
             (srfi srfi-41 util)
             )

(load "config.scm")
((@ (vcomponent) init-app) (get-config 'calendar-files))

(define all-events (getf 'event-set))
(define groups (group-stream all-events))

(define start #2020-06-01)
(define end #2020-07-01)

(define (run-filter)
  (stream->list (filter-sorted-stream (lambda (e) (event-overlaps? e start end))
                                      all-events)))

(define (run-grouped)
  (map group->event-list
       (stream->list (get-groups-between groups start end))))

(define (calc-time start end)
  (exact->inexact
    (+ (- (car end)
          (car start))
       (/ (- (cdr end)
             (cdr start))
          #e1e6))))

(run-filter)
(run-grouped)

(format #t "Starting timings~%")
(define t1 (gettimeofday))
(do ((i 1 (1+ i)))
  ((> i 1000))
  (run-grouped))
(format #t "end first timings~%")
(define t2 (gettimeofday))
(do ((i 1 (1+ i)))
  ((> i 1000))
  (run-filter))
(format #t "end second timings~%")
(define t3 (gettimeofday))

(format #t "t1 = ~a~%t2 = ~a~%"
        (calc-time t1 t2)
        (calc-time t2 t3))

(values (calc-time t1 t2)
        (calc-time t2 t3))