Created
December 14, 2013 12:33
-
-
Save v6ak/7958676 to your computer and use it in GitHub Desktop.
Benchmark provedený doporučeným způsobem. Na každou variantu byla spuštena nová JVM. Verze Javu, OS i CPU jsou totožné s tímto benchmarkem: https://gist.github.com/v6ak/7958454
This file contains hidden or 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
| $ java -jar clojure-1.5.1.jar | |
| Clojure 1.5.1 | |
| user=> (defn plus-2 [n] (+ 2 n)) ; stary a nudny zpusob | |
| #'user/plus-2 | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 144.448077 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 85.961736 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 77.58655 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 74.791031 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 85.75201 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 72.557372 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 74.790059 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 112.086831 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 209.580589 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 164.499997 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 59.495038 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 80.338643 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 59.887229 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 69.444292 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 65.722472 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 61.724655 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 59.339142 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 61.213285 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 58.498922 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 61.173483 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 62.666102 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 63.67512 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 59.582425 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 73.398688 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 59.530475 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 62.09603 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 59.507458 msecs" | |
| nil |
This file contains hidden or 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
| $ java -jar clojure-1.5.1.jar | |
| Clojure 1.5.1 | |
| user=> (def plus-2 (partial + 2)) ; partial application | |
| #'user/plus-2 | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 976.76332 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1316.97167 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 2314.865176 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1131.901375 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1846.62982 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 2007.712494 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1124.485474 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 3625.088777 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 2722.371386 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1180.351592 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1142.251751 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1307.761559 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1637.000537 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1136.541862 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1531.431115 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1144.958374 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1151.803135 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1151.652464 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1134.792972 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1136.704638 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1161.373653 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1132.534593 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 3350.412636 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1442.551617 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1140.242148 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1147.000237 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1123.524147 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 1159.474978 msecs" | |
| nil |
This file contains hidden or 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
| $ java -jar clojure-1.5.1.jar | |
| Clojure 1.5.1 | |
| user=> (def plus-2 (comp inc inc)) ; kompozice funkci | |
| #'user/plus-2 | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 188.237386 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 212.536316 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 214.066971 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 146.111091 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 156.772069 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 151.308148 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 144.063704 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 150.164633 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 156.103215 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 147.358636 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 148.123984 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 152.917462 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 156.534827 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 146.082215 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 157.693227 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 141.635575 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 143.915909 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 146.899567 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 140.979618 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 251.719814 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 354.630542 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 180.478516 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 150.146061 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 159.173804 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 142.071578 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 144.452211 msecs" | |
| nil | |
| user=> (time (dotimes [n 10000000] (plus-2 n))) | |
| "Elapsed time: 145.074579 msecs" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment