This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-06-29
Channels
- # aws (6)
- # beginners (33)
- # bitcoin (2)
- # boot (22)
- # carry (2)
- # cider (5)
- # clara (21)
- # cljs-dev (115)
- # cljsrn (40)
- # clojure (161)
- # clojure-dev (73)
- # clojure-italy (38)
- # clojure-russia (88)
- # clojure-spec (123)
- # clojure-uk (58)
- # clojurescript (88)
- # core-async (26)
- # cursive (5)
- # datascript (18)
- # datomic (26)
- # hoplon (50)
- # java (2)
- # jobs (1)
- # leiningen (10)
- # lumo (1)
- # off-topic (18)
- # om (9)
- # onyx (26)
- # parinfer (13)
- # pedestal (41)
- # quil (1)
- # re-frame (27)
- # reagent (21)
- # ring-swagger (11)
- # slack-help (3)
- # spacemacs (8)
- # specter (5)
- # sql (42)
- # timbre (1)
- # uncomplicate (7)
- # untangled (3)
- # videos (1)
- # yada (26)
Giorno!
Quiz time. Data una map tipo (def m {:a1 1 :a2 2 :a3 etc...})
qual e' il modo piu' veloce (in media) di accedere ad un elemento (lasciando perdere Java interop)?
1. (get m :a3)
2. (find m :a3)
3. (:a3 m)
4. (m :a3)
@reborg hints?
A occhio direi get
, ma รจ solo intuitivamente e non ho assolutamente idea di cosa succeda sotto, di solito รจ tutto veloce abbastanza
Vero, sono tutti molto veloci. sono quisquiglie da conversazione ๐ Si va da circa 40 nanosec a 20 nanosec
get
funziona con vari tipi e find
deve construire comunque una mapentry sul risultato...
Vero ๐
(m :a3)
รจ sorprendente in effetti
(non potevo resistere, ho aperto una repl)
si non me l'aspettavo. sicuramente non e' reflection, che farebbe schizzare il tutto 1 ordine di grandezza
Ohh che bel grafico ๐
(let [coll (into {} coll)] (b (coll k)))
(let [^java.util.Map coll (into {} coll)] (b (.get coll k)))
scommetto se che riavvii la jvm tra un test e l'altro i risutlati saranno leggeremente diversi
altrimenti rischi che un benchmark precedente causi ottimizzazione/deottimizzazione di code path usati da uno successivo
gli altri si sono uniformati con il restart della jvm. vorrei provare una seconda volta poi posto un altro chart
non ho messo defrecord nel chart che mi sballa tutti i risultati ๐ get e find vagamente piu' lenti, java interop e map a parimerito, keyword meglio di prima