Last active
December 12, 2015 01:58
-
-
Save gaborbarna/4695353 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
(ns hash-test.core | |
(:require [criterium.core :as crit])) | |
(defn fill-with-into [items] | |
(into {} (map vec items))) | |
(defn no-assoc [items] | |
(apply hash-map items)) | |
(defn assoc-all [items] | |
(apply assoc {} items)) | |
(defn assoc-each-one [items] | |
(reduce (fn [h [k v]] (assoc h k v)) {} items)) | |
(defn benchmark-assoc [] | |
(doseq [n [1e4 1e5]] | |
(let [flat-rands (take n (repeatedly rand)) | |
pair-rands (partition 2 flat-rands)] | |
(println (str "--- " n " pairs")) | |
(println) | |
(println "Fill with into") | |
(crit/bench (fill-with-into pair-rands)) | |
(println) | |
(println "Initialize with all") | |
(crit/bench (no-assoc flat-rands)) | |
(println) | |
(println "Associng in one go") | |
(crit/bench (assoc-all flat-rands)) | |
(println) | |
(println "Associng one-by-one") | |
(crit/bench (assoc-each-one pair-rands))))) |
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
hash-test.core> (benchmark-assoc) | |
--- 10000.0 pairs | |
Fill with into | |
Evaluation count : 9960 in 60 samples of 166 calls. | |
Execution time mean : 6.102236 ms | |
Execution time std-deviation : 213.211593 us | |
Execution time lower quantile : 5.935354 ms ( 2.5%) | |
Execution time upper quantile : 6.670326 ms (97.5%) | |
Found 3 outliers in 60 samples (5.0000 %) | |
low-severe 2 (3.3333 %) | |
low-mild 1 (1.6667 %) | |
Variance from outliers : 22.1719 % Variance is moderately inflated by outliers | |
Initialize with all | |
Evaluation count : 26820 in 60 samples of 447 calls. | |
Execution time mean : 2.271764 ms | |
Execution time std-deviation : 62.430101 us | |
Execution time lower quantile : 2.215953 ms ( 2.5%) | |
Execution time upper quantile : 2.395317 ms (97.5%) | |
Found 3 outliers in 60 samples (5.0000 %) | |
low-severe 2 (3.3333 %) | |
low-mild 1 (1.6667 %) | |
Variance from outliers : 14.2241 % Variance is moderately inflated by outliers | |
Associng in one go | |
Evaluation count : 20040 in 60 samples of 334 calls. | |
Execution time mean : 3.040990 ms | |
Execution time std-deviation : 96.853800 us | |
Execution time lower quantile : 2.955243 ms ( 2.5%) | |
Execution time upper quantile : 3.296999 ms (97.5%) | |
Found 4 outliers in 60 samples (6.6667 %) | |
low-severe 1 (1.6667 %) | |
low-mild 3 (5.0000 %) | |
Variance from outliers : 18.9731 % Variance is moderately inflated by outliers | |
Associng one-by-one | |
Evaluation count : 11760 in 60 samples of 196 calls. | |
Execution time mean : 5.116783 ms | |
Execution time std-deviation : 145.897439 us | |
Execution time lower quantile : 4.989477 ms ( 2.5%) | |
Execution time upper quantile : 5.491941 ms (97.5%) | |
Found 6 outliers in 60 samples (10.0000 %) | |
low-severe 4 (6.6667 %) | |
low-mild 2 (3.3333 %) | |
Variance from outliers : 15.7769 % Variance is moderately inflated by outliers | |
--- 100000.0 pairs | |
Fill with into | |
Evaluation count : 840 in 60 samples of 14 calls. | |
Execution time mean : 76.874706 ms | |
Execution time std-deviation : 4.083293 ms | |
Execution time lower quantile : 72.273122 ms ( 2.5%) | |
Execution time upper quantile : 85.490686 ms (97.5%) | |
Found 1 outliers in 60 samples (1.6667 %) | |
low-severe 1 (1.6667 %) | |
Variance from outliers : 38.5232 % Variance is moderately inflated by outliers | |
Initialize with all | |
Evaluation count : 1920 in 60 samples of 32 calls. | |
Execution time mean : 32.798548 ms | |
Execution time std-deviation : 1.895327 ms | |
Execution time lower quantile : 30.610709 ms ( 2.5%) | |
Execution time upper quantile : 37.141475 ms (97.5%) | |
Found 5 outliers in 60 samples (8.3333 %) | |
low-severe 5 (8.3333 %) | |
Variance from outliers : 43.4208 % Variance is moderately inflated by outliers | |
Associng in one go | |
Evaluation count : 1440 in 60 samples of 24 calls. | |
Execution time mean : 46.450031 ms | |
Execution time std-deviation : 3.032011 ms | |
Execution time lower quantile : 43.102989 ms ( 2.5%) | |
Execution time upper quantile : 53.302902 ms (97.5%) | |
Found 2 outliers in 60 samples (3.3333 %) | |
low-severe 2 (3.3333 %) | |
Variance from outliers : 48.4720 % Variance is moderately inflated by outliers | |
Associng one-by-one | |
Evaluation count : 960 in 60 samples of 16 calls. | |
Execution time mean : 65.423463 ms | |
Execution time std-deviation : 2.463418 ms | |
Execution time lower quantile : 62.811709 ms ( 2.5%) | |
Execution time upper quantile : 73.246586 ms (97.5%) | |
Found 4 outliers in 60 samples (6.6667 %) | |
low-severe 1 (1.6667 %) | |
low-mild 3 (5.0000 %) | |
Variance from outliers : 23.8520 % Variance is moderately inflated by outliers | |
nil |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment