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 -~----------~----~----~----~------~----~------~--~---