Last active
January 3, 2016 07:39
-
-
Save athos/8431179 to your computer and use it in GitHub Desktop.
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 '[clojure.java.io :as io] | |
'[clojure.string :as s]) | |
(defn bench [filename f] | |
(with-open [r (io/reader filename)] | |
(->> (line-seq r) | |
(map f) | |
(group-by first)))) | |
(defn f1 [line] | |
(s/split line #",")) | |
(defn f2 [^String line] | |
(let [a (.split line ",")] | |
[(aget a 0) (aget a 1)])) | |
(defn f3 [^String line] | |
(let [i (.indexOf line ",")] | |
[(subs line 0 i) (subs line (inc i))])) | |
(defn f4 [^String line] | |
(let [i (.indexOf line \,)] | |
[(.substring line 0 i) (.substring line (inc i))])) | |
(comment | |
user=> (dotimes [_ 10] (time (bench "word-pairs.txt" f1))) | |
"Elapsed time: 526.227394 msecs" | |
"Elapsed time: 702.749791 msecs" | |
"Elapsed time: 562.34146 msecs" | |
"Elapsed time: 698.198075 msecs" | |
"Elapsed time: 541.922056 msecs" | |
"Elapsed time: 530.039631 msecs" | |
"Elapsed time: 794.938614 msecs" | |
"Elapsed time: 535.111616 msecs" | |
"Elapsed time: 713.351931 msecs" | |
"Elapsed time: 544.983888 msecs" | |
nil | |
user=> (dotimes [_ 10] (time (bench "word-pairs.txt" f2))) | |
"Elapsed time: 403.787892 msecs" | |
"Elapsed time: 662.57368 msecs" | |
"Elapsed time: 437.026249 msecs" | |
"Elapsed time: 642.806364 msecs" | |
"Elapsed time: 505.520853 msecs" | |
"Elapsed time: 594.884303 msecs" | |
"Elapsed time: 487.522537 msecs" | |
"Elapsed time: 409.583012 msecs" | |
"Elapsed time: 664.536535 msecs" | |
"Elapsed time: 429.284961 msecs" | |
nil | |
user=> (dotimes [_ 10] (time (bench "word-pairs.txt" f3))) | |
"Elapsed time: 415.879649 msecs" | |
"Elapsed time: 427.029762 msecs" | |
"Elapsed time: 601.36135 msecs" | |
"Elapsed time: 353.645478 msecs" | |
"Elapsed time: 329.444905 msecs" | |
"Elapsed time: 345.413541 msecs" | |
"Elapsed time: 345.17908 msecs" | |
"Elapsed time: 582.244321 msecs" | |
"Elapsed time: 468.696403 msecs" | |
"Elapsed time: 597.620492 msecs" | |
nil | |
user=> (dotimes [_ 10] (time (bench "word-pairs.txt" f4))) | |
"Elapsed time: 595.612801 msecs" | |
"Elapsed time: 319.554858 msecs" | |
"Elapsed time: 317.883967 msecs" | |
"Elapsed time: 324.611155 msecs" | |
"Elapsed time: 339.650851 msecs" | |
"Elapsed time: 576.29066 msecs" | |
"Elapsed time: 434.755482 msecs" | |
"Elapsed time: 406.41307 msecs" | |
"Elapsed time: 579.015913 msecs" | |
"Elapsed time: 440.795543 msecs" | |
nil | |
average: | |
f1: 614.9864456 | |
f2: 523.7526386 | |
f3: 446.6514981 | |
f4: 433.45843 | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment