Thanks for the advices.
The unchecked version run as fast as java.
Before I go solve some interesting problem I have to learn the language ;)
Thanks anyway.

On Wed, Oct 15, 2008 at 12:04 PM, Chouser <[EMAIL PROTECTED]> wrote:

>
> On Wed, Oct 15, 2008 at 7:08 AM, Parth Malwankar
> <[EMAIL PROTECTED]> wrote:
> >
> > On Oct 15, 8:34 am, Islon <[EMAIL PROTECTED]> wrote:
> >>
> >> (defn dumb-test []
> >>   (let [#^Float f2 567.09723]
> >>     (loop [#^Float f 1.8, i 10000000]
> >>       (if (zero? i)
> >>         f
> >>         (recur (/ f f2) (dec i))))))
>
> The type hints aren't really helping there, I think.  #^Float might
> help if you were calling a Java function and wanted to avoid the
> runtime reflection lookup cost, but you're only calling Clojure
> functions so it doesn't help.
>
> On my machine, about 180 msecs
>
> To get unboxed primitives, you have to do more like what Parth did:
>
> > (defn dumb-test []
> >  (let [f2 (float 567.09723)]
> >    (loop [f (float 1.2), i (long 10000000)]
> >      (if (zero? i)
> >        f
> >        (recur (/ f f2) (dec i))))))
>
> On my machine that's 48 msecs.
>
> But we can do a bit better, just by using unchecked-dec:
>
> (defn dumb-test []
>  (let [f2 (float 567.09723)]
>   (loop [f (float 1.2), i (long 10000000)]
>     (if (zero? i)
>       f
>        (recur (/ f f2) (unchecked-dec i))))))
>
> That's 24 msecs for me.
>
> But I don't know how useful these kinds of micro-benchmarks really
> are.  Clojure's "fast enough" so let's go solve some interesting
> problems...
>
> --Chouser
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to