I almost forgot about this. I talked to mfex on IRC, and he came up with the winning solution. http://clojure-log.n01se.net/date/2010-11-07.html#11:32
https://gist.github.com/666228 Basically it comes down to *not* doing work, rather than doing it fast. What the Python version does - and this version as well - is check if the block type is actually displayed before counting it. Thanks for all the input! On Nov 7, 6:30 pm, Justin Kramer <jkkra...@gmail.com> wrote: > Implementing this in straight Java might help pinpoint whether this is > a JVM issue or a Clojure issue. > > Also, FYI, there is clj-glob (https://github.com/jkk/clj-glob) for > finding files based on patterns like */*/*.dat > > Justin > > On Nov 4, 4:28 pm, Pepijn de Vos <pepijnde...@gmail.com> wrote: > > > > > > > > > Hi all, > > > I have written a Python script to analyze Minecraft levels and render a > > graph. Then I did the same with Clojure. It takes Python 10 seconds to > > analyze a map, while it takes Clojure over a minute. > > > After having tried different options without any significant improvement, I > > am lost as to why there is such a huge difference. I wouldn't mind an extra > > pair of eyes/brains to look at this. > > > I blogged about it in more detail > > here:http://pepijndevos.nl/clojure-versus-python > > Clojure version:https://github.com/pepijndevos/Clomian/ > > Python version:https://github.com/l0b0/mian > > > Clojure spends most of its time in the freqs function, here are a couple of > > variations:https://gist.github.com/663096 > > > If you want to run the code yourself, you'll need a Minecraft level and > > JNBT, which is not on Maven. > > JNBT:http://jnbt.sourceforge.net/ > > The level used in the blogpost:http://dl.dropbox.com/u/10094764/World2.zip > > > Groeten, > > Pepijn de Vos > > -- > > Sent from my iPod Shufflehttp://pepijndevos.nl -- 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