69 lines
2.0 KiB
Racket
69 lines
2.0 KiB
Racket
#lang typed/racket/base
|
|
(require
|
|
trivial/vector
|
|
trivial/math
|
|
racket/vector
|
|
plot/typed/no-gui
|
|
math/statistics)
|
|
|
|
(define NUM-TRIALS 8)
|
|
|
|
(define-vector: v1 (make-vector (expt: 10 1)))
|
|
(define-vector: v2 (make-vector (expt: 10 2)))
|
|
(define-vector: v3 (make-vector (expt: 10 3)))
|
|
(define-vector: v4 (make-vector (expt: 10 4)))
|
|
(define-vector: v5 (make-vector (expt: 10 5)))
|
|
(define-vector: v6 (make-vector (expt: 10 6)))
|
|
(define-vector: v7 (make-vector (expt: 10 7)))
|
|
;(define-vector: v8 (make-vector (expt: 10 8)))
|
|
;(define-vector: v9 (make-vector (expt: 10 9)))
|
|
|
|
(define-syntax-rule (tt e)
|
|
(let ([proc (lambda () e)])
|
|
(mean (for/list : (Listof Integer)
|
|
([i (in-range NUM-TRIALS)])
|
|
(let-values (((res cpu real gc) (time-apply proc '())))
|
|
cpu)))))
|
|
|
|
(define before*
|
|
(list
|
|
(tt (vector-map (lambda (x) x) v1))
|
|
(tt (vector-map (lambda (x) x) v2))
|
|
(tt (vector-map (lambda (x) x) v3))
|
|
(tt (vector-map (lambda (x) x) v4))
|
|
(tt (vector-map (lambda (x) x) v5))
|
|
(tt (vector-map (lambda (x) x) v6))
|
|
(tt (vector-map (lambda (x) x) v7))
|
|
#;(tt (vector-map (lambda (x) x) v8))
|
|
#;(tt (vector-map (lambda (x) x) v9))))
|
|
|
|
(define after*
|
|
(list
|
|
(tt (vector-map: (lambda (x) x) v1))
|
|
(tt (vector-map: (lambda (x) x) v2))
|
|
(tt (vector-map: (lambda (x) x) v3))
|
|
(tt (vector-map: (lambda (x) x) v4))
|
|
(tt (vector-map: (lambda (x) x) v5))
|
|
(tt (vector-map: (lambda (x) x) v6))
|
|
(tt (vector-map: (lambda (x) x) v7))
|
|
#;(tt (vector-map: (lambda (x) x) v8))
|
|
#;(tt (vector-map: (lambda (x) x) v9))))
|
|
|
|
;; TODO plot-pict
|
|
(plot-file
|
|
(list
|
|
(lines (for/list : (Listof (List Integer Real))
|
|
([i (in-naturals 1)]
|
|
[t (in-list before*)])
|
|
(list i t))
|
|
#:color 1
|
|
#:label "before")
|
|
(lines (for/list : (Listof (List Integer Real))
|
|
([i (in-naturals 1)]
|
|
[t (in-list after*)])
|
|
(list i t))
|
|
#:color 2
|
|
#:label "after"))
|
|
"map-microbench.png"
|
|
'png)
|