This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-02-04
Channels
- # announcements (1)
- # architecture (18)
- # aws (7)
- # babashka (63)
- # beginners (38)
- # bristol-clojurians (1)
- # circleci (1)
- # clj-kondo (10)
- # clojars (4)
- # clojure (159)
- # clojure-berlin (3)
- # clojure-europe (4)
- # clojure-italy (7)
- # clojure-losangeles (6)
- # clojure-nl (7)
- # clojure-spec (3)
- # clojure-uk (109)
- # clojurescript (54)
- # css (1)
- # cursive (38)
- # data-science (2)
- # datascript (3)
- # datomic (14)
- # docker (2)
- # duct (11)
- # fulcro (47)
- # jobs (8)
- # jobs-discuss (3)
- # kaocha (4)
- # malli (3)
- # nyc (2)
- # off-topic (30)
- # overtone (3)
- # re-frame (17)
- # reagent (33)
- # shadow-cljs (29)
- # spacemacs (3)
- # specter (4)
- # tools-deps (13)
- # xtdb (13)
Ma se ho uno stream bello "grosso" (tipo 1 GB) e faccio una roba tipo:
(with-open [w (io/output-stream "file")]
(io/copy
(io/input-stream (:body @request))))
Lo stream viene copiato su disco blocco per blocco o prima lo tiene tutto in memoria e poi lo scrive?Buona domanda. E’ basato su Java NIO transferChannel https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html#transferTo(long,%20long,%20java.nio.channels.WritableByteChannel) e la risposta e’ che in generale, un sistema operativo moderno non trasferisce nemmeno un buffer dei bytes in memoria
E quindi ora mi spiego pure la differenza nei tempi passando da Linux a Winzozz. Grazie mille @reborg
prima PR in carve https://github.com/borkdude/carve/pull/14
ancora un po' alpha diciamo ma fantastico, ho gia' cancellato un migliaio di righe in vari progetti