I spent some time this morning on performance enhancements to
clojure.data.json, including a fix for DJSON-1. I just pushed release
0.1.2 to Sonatype; it will reach Maven Central in a few hours.

I added a `benchmark` function to clojure.data.json-test for easy
comparison. On Clojure 1.3.0, I get these numbers:

  ;; clojure.data.json 0.1.1
  "Elapsed time: 2288.791 msecs"
  "Elapsed time: 1821.382 msecs"
  "Elapsed time: 1803.054 msecs"
  "Elapsed time: 1745.032 msecs"
  "Elapsed time: 1729.438 msecs"
  "Elapsed time: 1725.459 msecs"
  "Elapsed time: 1715.483 msecs"
  "Elapsed time: 1719.421 msecs"

  ;; clojure.data.json 0.1.2
  "Elapsed time: 398.622 msecs"
  "Elapsed time: 157.456 msecs"
  "Elapsed time: 123.712 msecs"
  "Elapsed time: 105.424 msecs"
  "Elapsed time: 60.018 msecs"
  "Elapsed time: 59.023 msecs"
  "Elapsed time: 51.412 msecs"
  "Elapsed time: 64.738 msecs"

It can probably be made faster still, but that's a good start.

Next steps: a better API. The boolean argument for keyword vs string
keys is obscure. Keyword/option-style arguments would be better. With
that option being more visible, I'm really tempted revert to string
keys as the default. It's the only safe option: Otherwise, you can
easily get Clojure keywords that cannot be pr'd and read back.

-Stuart Sierra
clojure.com

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