Fork me on GitHub
#releases
<
2024-02-06
>
oyakushev09:02:07

https://github.com/clojure-goes-fast/clj-async-profiler 1.2.0 bumps the underlying async-profiler to a new major version which ships a few novel features. New profiling option :features takes a list of features to enable. Currently, two are supported: • :vtable – show targets of vtable/itable calls in the flamegraph. Helps to understand which specific polymorphic dispatch is causing the slowdown. • :comptask – show JIT compilation tasks in the flamegraph. Can be useful when you try to trim down application loading speed. Features are enabled like this:

(prof/profile {:features [:vtable :comptask]} )
New event type :ctimer profiles execution time spent on CPU and is an alternative to already existing :cpu and :itimer events. :cpu is still the most accurate and should be used if the environment has access to perf_events. In restricted environments where perf_events are not available (e.g., inside containers by default), :ctimer is now more accurate than :itimer and should be preferred.

💥 4
🎉 4
wotbrew10:02:51

This looks amazing. Any reason why :vtable is not on by default?

oyakushev11:02:09

@U0GE2S1NH Initially, it was on by default in async-profiler, but turned out it might crash in some exotic scenarios, so it became opt-in. I just mirrored async-profiler's decision. https://github.com/async-profiler/async-profiler/issues/736

👍 1
oyakushev11:02:13

You can enable it for all subsequent profiler runs by calling

(prof/set-default-profiling-options {:features [:vtable :comptask]})

Ben Sless08:02:36

Not meaning to make more work for you, but the new options aren't documented in the README yet. When you find time 🙏

oyakushev18:02:42

Good catch, but none of the options are listed in the README, they live on the KB page, and that section is linked from the README here:

oyakushev18:02:13

But I guess it's not discoverable enough, since otherwise you wound't be asking, right?

Ben Sless19:02:52

Yes, I keep getting to this message to find the options 🙃

borkdude11:02:01

https://github.com/babashka/tools-deps-native v0.1.5: a babashka pod to run tools.deps from babashka • sync with latest tools.deps • publish linux aarch64 binary babashka tools.bbuild, the main project which uses this is now synced with tools.build master as well

🎉 3
borkdude14:02:46

https://github.com/squint-cljs/squint: Light-weight ClojureScript dialect v0.6.90 (2024-02-06) • #458: don't emit null in statement position

🎉 2
tony.kay20:02:25

Version 1.2.2 of Statecharts https://github.com/fulcrologic/statecharts This version adds back in Guardrails, using the new version of that library, which has performance improvements that allow the checks to not affect the performance of upstream users of Guardrails. The older versions of GR, when enabled with statecharts, used to cause it to become so slow as to be unusable in development. This new version makes it hardly noticeable.

🙏 2
fulcro 2