I published my heap implementation on github:

https://github.com/maruks/clj-data

It has reasonable performance.   I used it for
https://www.hackerrank.com/challenges/messy-medians


[org.clojars.maruks/maruks.data "0.0.1"]






On Sun, Feb 1, 2015 at 7:16 PM, Ashton Kemerling <ashtonkemerl...@gmail.com>
wrote:

> Also remember to give the JVM some warm up time, as the JVM depends
> heavily on JIT style optimizations, and measuring performance without it
> might not represent real world behavior,
>
> --
> Ashton
>
>
> On Saturday, January 31, 2015 at 11:39:05 PM UTC-7, Mars0i wrote:
>>
>> You also might want to use Criterium
>> <https://github.com/hugoduncan/criterium> rather than *time *for
>> accurate benchmarking*.*
>>
>> On Friday, January 30, 2015 at 6:54:52 AM UTC-6, Maris wrote:
>>>
>>>
>>> yes,  it helped     :-)
>>>
>>> type hints make non-trivial difference
>>>
>>> thank you
>>>
>>> On Friday, 30 January 2015 12:43:40 UTC, Nicola Mometto wrote:
>>>>
>>>>
>>>> If you set! *warn-on-reflection* to true, you'd see a lot of reflection
>>>> warnings from your code.
>>>>
>>>> Type-hinting the code like this: http://sprunge.us/ATiV makes your
>>>> example execute in 120ms on my machine.
>>>>
>>>> Maris writes:
>>>>
>>>> > I implemented leftist heap (from Purely Functional Data Structures
>>>> book)
>>>> >  in clojure.
>>>> >
>>>> > https://gist.github.com/maruks/135fef92455578b61de2
>>>> >
>>>> > It takes 32 seconds to insert 100000 elements in heap:
>>>> >
>>>> > (time  (peek   (reduce conj (empty-heap)  (range 10000000 20000000
>>>> 100)
>>>> > )))
>>>> > "Elapsed time: 32649.71438 msecs"
>>>> > 10000000
>>>> >
>>>> > Why is it so much slower than SML NJ?  Something wrong with my code?
>>>> >
>>>> >
>>>> > Here is SML version:
>>>> > https://gist.github.com/maruks/c863eac9cf057a071307
>>>> >
>>>> > And function that inserts 100000 elements in *54* milliseconds !
>>>> >
>>>> > fun test(n:int) : int  =
>>>> >     let
>>>> > val r = List.tabulate(n, fn x => 10000000 + 100 * x)
>>>> > val h = foldl ( fn (e, h) => IntHeap.insert(e , h) )  IntHeap.empty
>>>>  r
>>>> >     in
>>>> > IntHeap.findMin(h)
>>>> >     end
>>>>
>>>> --
>>>>
>>>  --
> 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 a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/GBoLa_WBRfA/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/d/optout.

Reply via email to