pyroscope-rs
sccache
pyroscope-rs | sccache | |
---|---|---|
6 | 71 | |
129 | 5,385 | |
5.4% | 1.6% | |
7.5 | 9.4 | |
19 days ago | 5 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pyroscope-rs
- Show HN: Pyroscope-rs, a multi-language profiler built with Rust
-
Ask HN: What Are You Working On? (August 2022)
A general purpose profiler: https://github.com/pyroscope-io/pyroscope-rs
If someone is interested in this space, feel free to reach me!
-
Rust Is Portable
I feel some of the OP points. I was working on a profiling agent lately, and one of the issues was running it on multiple platforms (just the four big ones linux/mac-x86/arm) on FFI (because it'll be run directly from python/ruby/etc...) and preferably having the thing just work without having to install or configure any dependencies.
Like OP I hit two walls: libunwind, and linking. For libunwind, I ended up downloading/compiling manually; and for linking there is auditwheel[1]. Although it is a Python tool, I did actually end up using for Ruby (by creating a "fake python package", and then copying the linked dependencies).
It was at that time that I learned about linking for dynamic libraries, patchelf and there is really no single/established tool to do this. I thought there should be something but most people seem to install the dependencies with any certain software. I also found, the hard way, that you still have to deal with gcc/c when working with Rust. It does isolate you from many stuff, but for many things there is no work around.
There is a performance hit to this strategy, however, since shared dynamic libraries will be used by all the running programs that need them; whereas my solution will run its own instance. It made me wonder if wasm will come up with something similar without affecting portability.
Finally, the project is open source and you can browse the code here: https://github.com/pyroscope-io/pyroscope-rs
[1]: https://github.com/pypa/auditwheel
-
Pyroscope Profiler 0.5 released
Version 0.5 is now live!: https://github.com/pyroscope-io/pyroscope-rs
-
What's everyone working on this week (17/2022)?
Working on https://github.com/pyroscope-io/pyroscope-rs A profiling solution for Rust and other languages.
-
Rust support for continuous profiling added in Pyroscope v0.10.2
Thanks to the maintainers at pprof-rs for helping us figure out how we can modify their profiler to create our rust agent (https://github.com/pyroscope-io/pyroscope-rs).
sccache
-
Speeding up C++ build times
Use icecream or sccache. sccache supports distributed builds.
https://github.com/mozilla/sccache/blob/main/docs/Distribute...
-
Mozilla sccache: cache with cloud storage
Worth noting that the first commit in sccache git repository was in 2014 (https://github.com/mozilla/sccache/commit/115016e0a83b290dc2...). So I suppose that what "happened" happened waay back.
- Welcome to Apache OpenDAL
-
Target file are very huge and running out of storage on mac.
If you have lots of shared dependencies, maybe try sccache?
-
S3 Express Is All You Need
I'm going to set up sccache [0] to use it tomorrow. We use MSVC, so EFS is off the cards.
[0] https://github.com/mozilla/sccache/blob/main/docs/S3.md
- sccache
-
Serde has started shipping precompiled binaries with no way to opt out
I think the primary benefit of pre-built procmacros will be for build servers which don't use a persistent cache (like sccache), since they have to compile all dependencies every time. But IMO improved support for persistent caches would be a better investment compared to adding support for pre-built procmacros.
-
Cache dependencies across crates
Checkout https://github.com/mozilla/sccache
-
Distcc: A fast, free distributed C/C++ compiler
https://github.com/mozilla/sccache is another option which addresses the use cases of both icecream and ccache (and also supports Rust, and cloud storage of artifacts, if those are useful for you)
-
How to fix Rust Coding LARGE files????
That being said a compilation cache, eg the de-facto standard for Rust: sccache (https://github.com/mozilla/sccache) will help to compile and store some of the build artifacts centralized - still for each crate version + build profile (RUSTFLAGS) combination.
What are some alternatives?
pprof-rs - A Rust CPU profiler implemented with the help of backtrace-rs
ccache - ccache – a fast compiler cache
weaver - API tool,but egui style and rusty
cargo-chef - A cargo-subcommand to speed up Rust Docker builds using Docker layer caching.
trippy - A network diagnostic tool
rust-cache - A GitHub Action that implements smart caching for rust/cargo projects
bazel-buildfarm - Bazel remote caching and execution service
cache - Cache dependencies and build outputs in GitHub Actions
oxide - Teach your PostgreSQL database how to speak MongoDB Wire Protocol
icecream - Distributed compiler with a central scheduler to share build load
reframe - LeapTable 🦘- The fastest way to build, deploy, and manage LLM-powered agents on tabular data (dataframes, SQL tables and Spreadsheets). [Moved to: https://github.com/peterwnjenga/leaptable]
mold - Mold: A Modern Linker 🦠