Fork me on GitHub
Matthew Davidson (kingmob)08:03:48

@eugen.stan It’s mostly the accumulation of years of bug fixes and upgraded libraries, no real new features. 0.4.6 was the last version the original author, Zach Tellman, released before leaving the Clojure community and moving on to other things. The 0.4.7 release is primarily to get all that out there. I became de facto maintainer of many of Zach’s old libs about a year ago, but my primary interest was in Manifold; I don’t know Netty that well (yet), so other than bug fixes, and keeping up-to-date with Netty versions, I don’t have major plans for Aleph. This is ok, though, in many ways, it’s pretty feature-complete. I plan to test out java virtual threads (from Project Loom) in dirigiste, and if it pans out, may change Manifold and Aleph to use them. We’ll see. Of course, suggestions and help is welcome!

👍 2
Ben Sless06:03:42

One thing I noticed regarding manifold which might benefit from some work is it allocates quite a lot and creates deep call stacks even for "trivial" code.

Matthew Davidson (kingmob)09:03:42

Any scenarios in particular you think should be looked into @UK0810AQ2?


I think we noticed that too in our code ... (not 100% sure it's manifold). I remember lots of threads and thread exhaustion by manifold threads. I checked to see if we can limit the pool but did not find things. (new to clojure)

Matthew Davidson (kingmob)06:03:21

@eugen.stan If you have a memory snapshot you can share, that would be awesome. If you were returning InputStreams of any sort in Aleph, I might have a fix for the memory leak here:

Ben Sless17:03:58

@U10EC98F5 I forgot I already had profiling results for a server with Aleph and manifold, you can take a look at the flame graph and see where time is spent

Matthew Davidson (kingmob)01:03:12

@UK0810AQ2 thanks for sharing that. The SVG isn't labeled in the deep call stack (on my phone), but can I generate a new one from the repo? I'd like to zoom in if possible. My immediate guess is work is being done on the main thread that should be on an executor thread, but I'll have to see

Ben Sless04:03:40

@U10EC98F5 entirely possible, feel free to dm me and we'll schedule something