Lee Spector <lspec...@hampshire.edu> writes:

> FWIW I used records for push-states at one point but did not observe a
> speedup and it required much messier code, so I reverted to
> struct-maps. But maybe I wasn't doing the right timings. I'm curious
> about how you changed to records without the messiness. I'll include
> below my sig the way that I had to do it... maybe you can show me what
> you did instead.

I just double-checked, and I definitely see a >2x speedup on Josiah’s
benchmark.  That may still be synthetic, of course.  Here’s what I did:

    (eval `(defrecord ~'PushState [~'trace ~@(map (comp symbol name) 
push-types)]))
    
    (let [empty-state (map->PushState {})]
      (defn make-push-state
        "Returns an empty push state."
        [] empty-state))

> Still, I guess the gorilla in the room, which is eating the multicore
> performance, hasn't yet been found.

No, not yet...  I’ve become obsessed with figuring it out though, so
still slogging at it.

-Marshall

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

Reply via email to