ok i like this variant:
=> (def r (memoize (A. "a" 3)))
#'runtime.q_test/r
=> (time (dotimes [n 10000000] (hash r)))
"Elapsed time: 342.363961 msecs"
nil
=> (time (dotimes [n 10000000] (hash r)))
"Elapsed time: 361.66747 msecs"
nil

=> (time (dotimes [n 10000000] (hash (memoize (A. "a" 3)))))
"Elapsed time: 1812.016478 msecs"
nil
=> (time (dotimes [n 10000000] (hash (memoize (A. "a" 3)))))
"Elapsed time: 1847.244062 msecs"
nil




On Sun, Feb 3, 2013 at 8:29 AM, AtKaaZ <atk...@gmail.com> wrote:

> => (def m {:x "a" :y 3})
> #'runtime.q_test/m
> => (time (dotimes [n 10000000] (hash m)))
> "Elapsed time: 154.650091 msecs"
> nil
> => (time (dotimes [n 10000000] (hash m)))
> "Elapsed time: 164.724641 msecs"
> nil
> => (time (dotimes [n 10000000] (hash m)))
> "Elapsed time: 150.194984 msecs"
> nil
>
> => (time (dotimes [n 10000000] (hash {:x "a" :y 3})))
> "Elapsed time: 57.981602 msecs"
> nil
>
> => (time (dotimes [n 10000000] (hash {:x "a" :y 3})))
> "Elapsed time: 70.803223 msecs"
> nil
>
> => (time (dotimes [n 10000000] (hash {:x "a" :y 3})))
> "Elapsed time: 67.395947 msecs"
> nil
>
>
> => (def r (A. "a" 3))
> #'runtime.q_test/r
> => (time (dotimes [n 10000000] (hash r)))
> "Elapsed time: 4906.641334 msecs"
> nil
> => (time (dotimes [n 10000000] (hash r)))
> "Elapsed time: 4959.124395 msecs"
> nil
>
> => (time (dotimes [n 10000000] (hash (A. "a" 3))))
> "Elapsed time: 4842.496589 msecs"
> nil
>
> => (time (dotimes [n 10000000] (hash (A. "a" 3))))
> "Elapsed time: 4856.855515 msecs"
> nil
>
>
>
>
> On Sun, Feb 3, 2013 at 8:26 AM, AtKaaZ <atk...@gmail.com> wrote:
>
>> he's in RC4
>> => *clojure-version*
>> {:major 1, :minor 5, :incremental 0, :qualifier "RC4"}
>>
>>
>> => (time (dotimes [n 10000000] (hash {:x "a" :y 3})))
>> "Elapsed time: 70.037502 msecs"
>>
>>
>> => (time (dotimes [n 10000000] (hash (A. "a" 3))))
>> "Elapsed time: 5307.93947 msecs"
>>
>>
>> On Sun, Feb 3, 2013 at 8:22 AM, Leonardo Borges <
>> leonardoborges...@gmail.com> wrote:
>>
>>> Are you running these in Clojure 1.5 RC-1 by any chance? That's when I
>>> got results similar to yours.
>>>
>>> In Clojure 1.4, I get this:
>>>
>>> user> (time (dotimes [n 10000000] (hash {:x "a" :y 3})))
>>> "Elapsed time: 5993.331 msecs"
>>> nil
>>> user>  (time (dotimes [n 10000000] (hash (A. "a" 3))))
>>> "Elapsed time: 3144.368 msecs"
>>>
>>> No clue as to the reason though - but it seems something might have
>>> changed from 1.4 to 1.5?
>>>
>>>
>>> Leonardo Borges
>>> www.leonardoborges.com
>>>
>>>
>>> On Sun, Feb 3, 2013 at 5:07 PM, Mark Engelberg <mark.engelb...@gmail.com>
>>> wrote:
>>> > I just went through the process of converting my map-based program
>>> over to
>>> > records, hoping it would improve speed.  Much to my dismay, it actually
>>> > slowed my program down substantially.  With some profiling, I
>>> discovered
>>> > that one possible explanation is that (at least in RC4) hashing of
>>> records
>>> > is about 60x slower than their map-based counterpart.
>>> >
>>> > (defrecord A [x y])
>>> > => (time (dotimes [n 10000000] (hash {:x "a" :y 3})))
>>> > "Elapsed time: 90.631072 msecs"
>>> > => (time (dotimes [n 10000000] (hash (A. "a" 3))))
>>> > "Elapsed time: 5549.788311 msecs"
>>> >
>>> > Any thoughts about why this is the case?
>>> >
>>> > --
>>> > --
>>> > 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
>>> > Note that posts from new members are moderated - please be patient
>>> with your
>>> > first post.
>>> > To unsubscribe from this group, send email to
>>> > clojure+unsubscr...@googlegroups.com
>>> > For more options, visit this group at
>>> > http://groups.google.com/group/clojure?hl=en
>>> > ---
>>> > You received this message because you are subscribed to the Google
>>> Groups
>>> > "Clojure" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> an
>>> > email to clojure+unsubscr...@googlegroups.com.
>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>> >
>>> >
>>>
>>> --
>>> --
>>> 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
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>
>> --
>> Please correct me if I'm wrong or incomplete,
>> even if you think I'll subconsciously hate it.
>>
>>
>
>
> --
> Please correct me if I'm wrong or incomplete,
> even if you think I'll subconsciously hate it.
>
>


-- 
Please correct me if I'm wrong or incomplete,
even if you think I'll subconsciously hate it.

-- 
-- 
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
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to