Skip to content

Instantly share code, notes, and snippets.

@daveray
Created August 28, 2011 02:58
Show Gist options
  • Save daveray/1176183 to your computer and use it in GitHub Desktop.
Save daveray/1176183 to your computer and use it in GitHub Desktop.
match.java/bean-object perf compared to clojure.core/bean
; If I'm doing something completely bogus here, let me know :)
user=> (use 'match.core)
nil
user=>
(extend-type java.awt.Color
IMatchLookup
(val-at* [this k not-found]
(get (bean this) k not-found)))
nil
user=>
(match [java.awt.Color/RED]
[{:red red :green green :blue blue}] [red green blue]
:else :error)
[255 0 0]
user=>
(dotimes [_ 10]
(time
(dotimes [_ 1e6]
(match [java.awt.Color/RED]
[{:red red :green green :blue blue}] [red green blue]
:else :error))))
"Elapsed time: 16277.563 msecs"
"Elapsed time: 15926.8 msecs"
"Elapsed time: 15947.552 msecs"
"Elapsed time: 15932.178 msecs"
"Elapsed time: 15913.223 msecs"
"Elapsed time: 15922.486 msecs"
"Elapsed time: 15933.052 msecs"
"Elapsed time: 15925.06 msecs"
"Elapsed time: 15881.855 msecs"
"Elapsed time: 15913.371 msecs"
nil
user=> (use 'match.java :reload)
nil
user=> (bean-match java.awt.Color)
nil
user=>
(match [java.awt.Color/RED]
[{:red red :green green :blue blue}] [red green blue]
:else :error)
[255 0 0]
user=>
(dotimes [_ 10]
(time
(dotimes [_ 1e6]
(match [java.awt.Color/RED]
[{:red red :green green :blue blue}] [red green blue]
:else :error))))
"Elapsed time: 226.668 msecs"
"Elapsed time: 191.967 msecs"
"Elapsed time: 191.431 msecs"
"Elapsed time: 190.824 msecs"
"Elapsed time: 188.212 msecs"
"Elapsed time: 187.629 msecs"
"Elapsed time: 188.953 msecs"
"Elapsed time: 188.91 msecs"
"Elapsed time: 187.886 msecs"
"Elapsed time: 188.482 msecs"
nil
user=>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment