alys 0.2.0 Highlights ========== MessagePack traces ------------------ The `.alys` format is now based on MessagePack. This can result in *massive* decreases in file size, largely thanks to variable-length integer encoding. Sampled events via `ALYS_SAMPLE_INTERVAL` ----------------------------------------- On large applications, writing an event on every single allocation is slow and can result in massive, hard-to-inspect trace files. Now, you can set `ALYS_SAMPLE_INTERVAL=bytes:N` to only write events for every `N` bytes allocated, trading granularity for significantly better performance and a smaller file size. PIE executable support for address-only backtraces (ELF only) ------------------------------------------------------------- On systems that use ELF binaries, address-only backtraces will now embed information in the trace file that allows `alys_converter` to symbolize them regardless of the executable's base address. (Support for macOS/Mach-O will come in the future.) Significant `alys_converter` performance improvements ----------------------------------------------------- `alys_converter` now uses a single `llvm-symbolizer` process for all its symbolization, which can result in performance improvements of over 8x. Flamegraphs (and folded stacks) ------------------------------- `alys_converter` can now output folded stacks (primarily used for feeding into various flamegraph tools) and flamegraphs (via [`inferno-flamegraph`](https://github.com/jonhoo/inferno)). `ALYS_BACKTRACE_TYPE=addr` is the default (ELF only) ---------------------------------------------------- Thanks to all of the above changes, making `alys_converter` significantly faster *and* usable with PIE binaries, `ALYS_BACKTRACE_TYPE=addr` is now the default trace type on ELF systems. The main advantages are the smaller perf hit and trace file size, as well as `alys_converter`'s symbolization giving *significantly* better results.