On Tue, May 3, 2011 at 2:51 PM, Ken Wesson <[email protected]> wrote:
> It's optimizing your loop away, or else you're using ridiculously
> powerful hardware.
>
> user=> (time (dotimes [_ 1000000] (Math/ceil (rand))))
> "Elapsed time: 142.86748 msecs"
> nil
Maybe, maybe not:
(do
(set! *unchecked-math* true)
(let [nums (double-array (repeatedly 1e3 rand))]
(dotimes [_ 10]
(time
(dotimes [i 1e8] (Math/ceil (double (aget nums (rem i 1e3)))))))))
"Elapsed time: 1405.835 msecs"
(do
(set! *unchecked-math* true)
(let [nums (double-array (repeatedly 1e3 rand))]
(dotimes [_ 10]
(time
(dotimes [i 1e8] (double (aget nums (rem i 1e3))))))))
"Elapsed time: 1409.305 msecs"
Given that the i7 is far into the gigaflops territory, I don't find this
particularly surprising. But I'm not a hardware architecture expert by any
means nor an expert of what kind of magic the JVM can do.
David
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en