This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-09-17
Channels
- # announcements (2)
- # aws (7)
- # beginners (46)
- # cider (15)
- # clj-kondo (24)
- # cljs-dev (3)
- # clojure (46)
- # clojure-dev (34)
- # clojure-europe (7)
- # clojure-italy (7)
- # clojure-nl (10)
- # clojure-norway (15)
- # clojure-spec (5)
- # clojure-uk (42)
- # clojuredesign-podcast (1)
- # clojurescript (79)
- # clr (3)
- # core-async (1)
- # cursive (45)
- # data-science (1)
- # datomic (4)
- # fulcro (17)
- # funcool (14)
- # gorilla (2)
- # graphql (30)
- # jackdaw (5)
- # jobs-discuss (8)
- # joker (4)
- # lein-figwheel (1)
- # off-topic (48)
- # pedestal (26)
- # re-frame (36)
- # reagent (18)
- # reitit (6)
- # remote-jobs (4)
- # shadow-cljs (115)
- # tools-deps (62)
- # vim (12)
@mpenet are you thinking about replacing manifold?
we want to retain a very similar api for deferreds at least and we're likely going to go a different way (somewhat) for "streams" given what we will base it upon
hmm. i'm interested in this then @mpenet - we're very heavily manifold based, with lots of both deferred and stream processing
what are you thinking for stream processing ?
@niwinz nice perf gain. How does the raw perf compare to plain java CF chain? E.g. no protocols, extra wrapping etc.
the last output was that. simple promise.core/then' usage vs plain completablefuture (no protocols no extra wrappings
(defn simple-promise-chain-5-raw
[]
@(as-> (CompletableFuture/completedFuture 1) $
(-> $
(p/then' inc)
(p/then' inc)
(p/then' inc)
(p/then' inc)
(p/then' inc))))
(defn simple-completable-chain-5-raw
[]
@(as-> (CompletableFuture/completedFuture 1) $
(.thenApply ^CompletionStage $ ^Function (pu/->FunctionWrapper inc))
(.thenApply ^CompletionStage $ ^Function (pu/->FunctionWrapper inc))
(.thenApply ^CompletionStage $ ^Function (pu/->FunctionWrapper inc))
(.thenApply ^CompletionStage $ ^Function (pu/->FunctionWrapper inc))
(.thenApply ^CompletionStage $ ^Function (pu/->FunctionWrapper inc))))
this shows a lightweight overhead of promise just for additional function wrapping and the protocols...
ut the real difference is promesa:`139.088517 ns (97.5%)` vs cf:`134.078223 ns (97.5%)`