Skip to content

Instantly share code, notes, and snippets.

@timsgardner
Last active April 15, 2017 18:41
Show Gist options
  • Save timsgardner/a9b3796984011fee8dd200ea16fbde28 to your computer and use it in GitHub Desktop.
Save timsgardner/a9b3796984011fee8dd200ea16fbde28 to your computer and use it in GitHub Desktop.
better merge
(require
'[arcadia.internal.benchmarking :as b]
'[magic.faster :as f])
(defn better-merge [m1 m2]
(persistent!
(reduce-kv assoc! (transient {}) m2)))
(let [m {}
m2 (zipmap (range 1e4) (range))]
(f/faster
(b/n-timing 10
(merge m m2))))
;; ~59
(let [m {}
m2 (zipmap (range 1e4) (range))]
(f/faster
(b/n-timing 10
(better-merge m m2))))
;; ~25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment