This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[~/Dropbox/ws/rum] lein perf | |
--- Testing page1.html (1 kB) --- | |
Evaluation count : 4656 in 6 samples of 776 calls. | |
Execution time mean : 127.518354 µs | |
Execution time std-deviation : 3.729988 µs | |
Execution time lower quantile : 124.490218 µs ( 2.5%) | |
Execution time upper quantile : 132.649851 µs (97.5%) | |
Overhead used : 2.051537 ns |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ :+ | |
{ :editor | |
{ "pmeta-/" [:toggle-comment-selection] | |
"ctrl-shift-up" [:editor.sublime.selectLinesUpward] | |
"ctrl-shift-down" [:editor.sublime.selectLinesDownward] | |
"pmeta-d" [:editor.sublime.selectNextOccurrence] | |
"ctrl-m" [:editor.sublime.goToBracket] | |
"ctrl-shift-m" [:editor.sublime.selectBetweenBrackets] | |
"shift-pmeta-space" [:editor.sublime.selectScope] | |
"ctrl-pmeta-up" [:editor.sublime.swapLineUp] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns uploader | |
(:require | |
[clojure.string :as str] | |
[goog.dom :as gdom] | |
[goog.userAgent :as ua] | |
[rum.core :as rum])) | |
(defonce supports-dragndrop? | |
(let [el (js/document.createElement "div")] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require '[criterium.core :as c]) | |
(defn new_= | |
"Equality. Returns true if x equals y, false if not. Same as | |
Java x.equals(y) except it also works for nil, and compares | |
numbers and collections in a type-independent manner. Clojure's immutable data | |
structures define equals() (and thus =) as a value, not an identity, | |
comparison." | |
{:inline (fn [x y] `(. clojure.lang.Util equiv ~x ~y)) | |
:inline-arities #{2} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require '[criterium.core :as c]) | |
(defn format-time [estimate] | |
(let [mean (first estimate) | |
[factor unit] (c/scale-time mean)] | |
(c/format-value mean factor unit))) | |
(defmacro race [body1 body2] | |
`(let [_# (assert (= ~body1 ~body2)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(import '[java.net InetAddress DatagramPacket DatagramSocket]) | |
(defonce socket (DatagramSocket.)) | |
(defn send-message [text port] | |
(let [host (InetAddress/getLocalHost) | |
packet (DatagramPacket. (.getBytes text) (.length text) host port)] | |
(.send socket packet))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn race | |
"Runs two fns in tight loops in two parallel threads for 1 second" | |
[publish-fn check-fn] | |
(println "---") | |
(let [*run? (volatile! true) | |
*failures (volatile! 0) | |
thread! #(future | |
(loop [i 0] | |
(% i) | |
(if @*run? (recur (inc i)) i))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn quick-benchmark [fun] | |
(let [t0 (js/performance.now)] | |
(loop [] | |
(dotimes [_ 10] (fun)) | |
(when (< (- (js/performance.now) t0) 1000) (recur))) | |
(let [t0 (js/performance.now) | |
steps (loop [steps 0] | |
(dotimes [_ 10] (fun)) | |
(if (< (- (js/performance.now) t0) 5000) | |
(recur (+ steps 10)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn digits [x] | |
(loop [r x, digits []] | |
(if (== 0 r) | |
digits | |
(recur (quot r 10) (conj digits (rem r 10)))))) | |
(defn double-odd-digits [digits] | |
(map-indexed (fn [i d] (if (odd? i) (* 2 d) d)) digits)) | |
(defn valid? [x] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn bench-btset [] | |
(doseq [distinct [:distinct :duplicates] | |
size [20000] | |
[tn target] [["sorted-set" (sorted-set)] | |
["btset" (btset/btset)] | |
["vector" []]] | |
:let [range (if (= :distinct distinct) | |
(shuffle (range size)) | |
(repeatedly size #(rand-int size))) | |
shuffled-range (shuffle range) |