https://github.com/divs1210/streamex-benchmark
MicroBenchmark: Clojure seqs vs transducers vs Java StreamEx
https://github.com/divs1210/streamex-benchmark
clojure java streams transducers
Last synced: 2 months ago
JSON representation
MicroBenchmark: Clojure seqs vs transducers vs Java StreamEx
- Host: GitHub
- URL: https://github.com/divs1210/streamex-benchmark
- Owner: divs1210
- License: epl-1.0
- Created: 2018-06-05T00:02:54.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-05T02:01:12.000Z (over 7 years ago)
- Last Synced: 2025-01-16T21:52:22.140Z (9 months ago)
- Topics: clojure, java, streams, transducers
- Language: Clojure
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# streamex-benchmark
Clojure wrapper over Java streams using StreamEx (https://github.com/amaembo/streamex)
## Usage
From `clj-stream.core-test`:
```clojure
(deftest tests
(is (= (bench
"Clojure seqs:"
(->> (range 1000000)
(filter even?)
(map #(Math/sqrt %))
(reduce +)))(bench
"Clojure transducers:"
(transduce (comp (filter even?)
(map #(Math/sqrt %)))
+
(range 1000000)))(bench
"StreamEx streams:"
(-> (range 1000000)
(s/filter even?)
(s/map #(Math/sqrt %))
(s/reduce +))))))
```Running `lein test` shows:
```
Clojure seqs:
"Elapsed time: 6151.199012 msecs"
Clojure transducers:
"Elapsed time: 3928.352095 msecs"
StreamEx streams:
"Elapsed time: 5092.265878 msecs"
```So... faster than seqs, but slower than transducers. Hmm.
## License
Copyright © Divyansh Prakash, 2018
Distributed under the Eclipse Public License either version 1.0 or (at
your option) any later version.