Create a gist now

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Benchmarking ^char type-hint vs (char)
====== Benching (Character/isLetter ^char c) ======
WARNING: Final GC required 3.956775511289807 % of runtime
amd64 Linux 3.2.0-48-generic 2 cpu(s)
Java HotSpot(TM) 64-Bit Server VM 23.21-b01
Runtime arguments: -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Dclojure.compile.path=/tmp/oneoff/classes -Doneoff.version=0.1 -Dfile.encoding=UTF-8 -Dclojure.debug=false
Evaluation count : 5580540 in 60 samples of 93009 calls.
Execution time sample mean : 11.046857 µs
Execution time mean : 11.046903 µs
Execution time sample std-deviation : 24.758483 ns
Execution time std-deviation : 24.947300 ns
Execution time lower quantile : 10.982341 µs ( 2.5%)
Execution time upper quantile : 11.089820 µs (97.5%)
Overhead used : 22.302964 ns
Found 4 outliers in 60 samples (6.6667 %)
low-severe 3 (5.0000 %)
low-mild 1 (1.6667 %)
Variance from outliers : 1.6389 % Variance is slightly inflated by outliers
====== Benching (Character/isLetter (char c)) ======
amd64 Linux 3.2.0-48-generic 2 cpu(s)
Java HotSpot(TM) 64-Bit Server VM 23.21-b01
Runtime arguments: -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Dclojure.compile.path=/tmp/oneoff/classes -Doneoff.version=0.1 -Dfile.encoding=UTF-8 -Dclojure.debug=false
Evaluation count : 5460840 in 60 samples of 91014 calls.
Execution time sample mean : 11.294136 µs
Execution time mean : 11.294148 µs
Execution time sample std-deviation : 26.541266 ns
Execution time std-deviation : 26.966371 ns
Execution time lower quantile : 11.226729 µs ( 2.5%)
Execution time upper quantile : 11.340594 µs (97.5%)
Overhead used : 22.302964 ns
Found 10 outliers in 60 samples (16.6667 %)
low-severe 2 (3.3333 %)
low-mild 3 (5.0000 %)
high-mild 4 (6.6667 %)
high-severe 1 (1.6667 %)
Variance from outliers : 1.6389 % Variance is slightly inflated by outliers
;; INSTRUCTIONS: add lein oneoff (https://github.com/mtyaka/lein-oneoff) to your profiles.clj
;; and run "lein oneoff char-benchmark.clj"
#_(defdeps [[org.clojure/clojure "1.5.1"]
[criterium "0.4.1"]])
(use 'criterium.core)
(def data "abcdefghijklmnopqrstuvwxyz1234567890")
(println "====== Benching (Character/isLetter ^char c) ====== ")
(bench (dorun (filter #(Character/isLetter ^char %) data)) :verbose)
(println)
(println "====== Benching (Character/isLetter (char c)) ====== ")
(bench (dorun (filter #(Character/isLetter (char %)) data)) :verbose)
@noahlz

This comment has been minimized.

Show comment
Hide comment
Owner

noahlz commented Jul 7, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment