[racket] (Math) Computing the mean is slow in Typed Racket

From: Laurent (laurent.orseau at gmail.com)
Date: Fri Feb 8 02:39:38 EST 2013

(Just a little testing of the exciting new math lib.)

Is it currently normal that computing the mean of a big list is 10x slower
compared to the (/ (apply + l) (length l)) method?

The math lib is very recent so I'm not entirely surprised, anyway. Most of
the time seems to be due to GC.

E.g. (on command line Racket) :
#lang typed/racket

(require math)

(: n Integer)
(define n 10000000)
(: l (Listof Integer))
(define l (build-list n (λ(x)(random 100))))

(: my-mean ((Listof Integer) -> Number))
(define (my-mean l)
  (/ (apply + l) (length l)))

(time (mean l))
(time (my-mean l))

-->

cpu time: 3932 real time: 3931 gc time: 2848
495033609/10000000
cpu time: 408 real time: 406 gc time: 4
495033609/10000000


Cheers,
Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130208/3960abd9/attachment.html>

Posted on the users mailing list.