[racket] first vs car ; last vs cdr ; empty? vs null?
I get :
> (let ((v (time (make-vector 50000000 0))))
(time (vector-length v))
(time (vector-length v))
(time (vector-length v))
(void))
cpu time: 188 real time: 191 gc time: 12
cpu time: 0 real time: 0 gc time: 0
cpu time: 0 real time: 0 gc time: 0
cpu time: 0 real time: 0 gc time: 0
Which seems consistent to me.
Are you trying on the command line?
Laurent
On Sat, Mar 8, 2014 at 7:35 PM, Greg Hendershott
<greghendershott at gmail.com>wrote:
> As for length:
>
> (for ([i 3]) (collect-garbage))
> (let ((ls (time (make-list 50000000 0))))
> (time (length ls))
> (time (length ls))
> (time (length ls))
> (void))
>
> It's what I would expect:
>
> cpu time: 6733 real time: 6744 gc time: 6419
> cpu time: 141 real time: 141 gc time: 0
> cpu time: 145 real time: 145 gc time: 0
> cpu time: 142 real time: 142 gc time: 0
>
> - - - - -
>
> Next, thinking about 50000000 elements made me think about vectors,
> vector? and vector-length.
>
> This:
>
> (for ([i 3]) (collect-garbage))
> (let ((v (time (make-vector 50000000 0))))
> (time (vector-length v))
> (time (vector-length v))
> (time (vector-length v))
> (void))
>
> prints:
>
> cpu time: 182 real time: 183 gc time: 1
> cpu time: 315 real time: 315 gc time: 314
> cpu time: 0 real time: 0 gc time: 0
> cpu time: 0 real time: 0 gc time: 0
>
> Huh? The first call to vector-length takes even longer than making
> the vector (and, seems to be almost entirely gc).
>
> I would have guessed that make-vector would create a structure with
> the length already stored in it, and all vector-length calls would be
> essentially 0.
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20140308/130784a9/attachment.html>