Thanks for the answer, that's exactly what I wanted to know.

On Jul 23, 1:59 pm, Rich Hickey <richhic...@gmail.com> wrote:
> On Wed, Jul 22, 2009 at 4:33 PM, Dragan Djuric<draga...@gmail.com> wrote:
>
> > I've just read in the Stuart's book that multimethod dispatching on
> > something other than Java inheritance is rarely used. It seems to me
> > that there is a huge potential for their use in something that I do,
> > so I'd add "yet" to his words. Anyway, what I would ask someone from
> > the core team, or someone else that knows the internals is:
> > How fast the multimethods dispatch performs with large taxonomies
> > compared to Java inheritance or small taxonomies? For example, a 1000
> > or thousands elements in different taxonomies (or even a million?). Is
> > it designed to perform well in such cases?
>
> Multimethod dispatch cost is the dispatch function + a single hashmap
> lookup. If there is no match, there is a single one-time matching
> process, the results of which are cached per multimethod.
> Ancestor/descendant relationships are precalculated on modification of
> the hierarchy, so isa? (for keywords) is a map lookup, not a tree
> walk. All caches are invalidated on any modification to the hierarchy.
>
> There is currently no per-call-site caching, nor any optimization for
> specialized cases (e.g. single dispatch). So, it is not going to be as
> fast as Java inheritance. OTOH, the model is simple - what you see is
> what you get, and scalability of the hashmaps from 1000s to millions
> is also good, and again something you can directly try out.
>
> Rich

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