This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-08-26
Channels
- # announcements (1)
- # beginners (42)
- # biff (11)
- # calva (15)
- # cider (3)
- # clj-http-lite (3)
- # clojure (52)
- # clojure-europe (16)
- # clojure-nl (1)
- # clojure-norway (39)
- # clojure-uk (4)
- # clojurescript (52)
- # code-reviews (13)
- # conjure (1)
- # cursive (4)
- # data-science (1)
- # datomic (5)
- # emacs (6)
- # events (3)
- # graalvm (5)
- # hyperfiddle (7)
- # kaocha (14)
- # lsp (11)
- # malli (3)
- # nbb (13)
- # off-topic (87)
- # pathom (15)
- # polylith (23)
- # portal (5)
- # reitit (4)
- # shadow-cljs (110)
- # squint (114)
- # testing (1)
- # vim (13)
I'm surprised to notice that I can compile a native image of an uberjar without direct linking and the binary seems to behave just fine. How is that possible? Wasn't direct linking mandatory? (using 22.2.0)
direct linking isn't mandatory but in some cases it can result in smaller binaries as the graal analyzer may notice some stuff can be left out
Do you reckon it is worth the effort perf-wise manually initializing more Java stuff at build time?
Alongside the CLJ stuff detected by graal-build-time
It's not recommended to initialize anything at build time but for Clojure stuff we have to. For most Java stuff it probably doesn't get you anymore than a few ms of startup time
Indeed I tried quite a few things yesterday, initializing some stuff at build time, eliding metadata from uberjars, ... It made virtually no difference at all on performance and image size