Our great sponsors
bytehound | heappy | |
---|---|---|
16 | 2 | |
3,856 | 21 | |
- | - | |
3.8 | 8.4 | |
9 months ago | 3 days ago | |
C | Rust | |
GNU General Public License v3.0 or later | 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.
bytehound
-
My Rust program (Well, game) is leaking memory, 4MB/s.
I've found bytehound helpful for tracking memory leaks: https://github.com/koute/bytehound
-
Show HN: I wrote a tool in Rust for tracking all allocations in a Linux process
Interesting approach. How is performance compared to something like https://github.com/koute/bytehound
-
Introducing alloc-track: Precise memory profiling by stack trace and thread.
https://github.com/koute/bytehound is another tool in this space to be aware of
- Out of the loop: WASM for non-web projects
- Which gui crate would you suggest for a simple program?
-
Implementing a C++ memory allocator to track our framework memory usage
Ot sure if it will fit your needs but maybe bytehound is worth looking into.
-
Memory leak in a long running process.
I had a great success recently with https://github.com/koute/bytehound/issues/86
- Hi, I’m new in rust, I have some expirience with c# and its classes ans structs. I can’t find information about that is happend with struct in rust when I pass it to function argument. Are there some copy effect ?
- Does rust have a visual analysis tool for memory and performance like pprof of golang?
-
Memory freed but not immediately
Try using this: https://github.com/koute/bytehound
heappy
-
Why Not Rust?
> But, for example, some runtime-related tools (most notably, heap profiling) are just absent — it’s hard to reflect on the runtime of the program if there’s no runtime!
Yeah; I felt that pain too.
I tried to write something to address some parts of the missing space. It's still in the early stages but you may be interested:
https://github.com/mkmik/heappy
-
Go 1.17 Is Released
I hate to be "that guy" too, but coming from somebody who really likes Rust and is using it more and more (also at $dayjob now) we must admit that Go tooling is one step ahead. CPU profiler, allocation and heap profiler, lock contention profiler. It all comes out of the box.
Yes you have cargo flamegraph for profiling locally and you now have pprof-rs to mimick Go's embedded pprof support. But allocation heap profiling is still something I struggle with.
I saw there was a pprof-rs PR with a heap profiler but there was some doubt as to whether it worked correctly; to get a feeling of how that approach would work but without having to fork pprof-rs I implemented the https://github.com/mkmik/heappy crate which I can use to produce memory allocation flamegraphs (using the same "go tool pprof" tooling!) in real code I run and figure out if it works in practice before pushing it upstream.
But stuff you give for granted like figuring out which structure accounts for most used memory, is very hard to achieve. The servo project uses an internal macro that help you trace the object sizes but it's hard to use outside the servo project.
The GC makes some things very easy, and it's not just about programmers not having to care about memory; it's also that the same reference tracing mechanism used to implement GC can be used to cheaply get profiling information.
What are some alternatives?
memory-profiler - A memory profiler for Linux. [Moved to: https://github.com/koute/bytehound]
textot.rs - Text operational transform library, for rust. Compatible with libot, ottypes/text.
heaptrack - A heap memory profiler for Linux
goawk - A POSIX-compliant AWK interpreter written in Go, with CSV support
pprof - pprof is a tool for visualization and analysis of profiling data
pprof-rs - A Rust CPU profiler implemented with the help of backtrace-rs
leakdice-rust - Rust re-implementation of leakdice
tracing - Application level tracing for Rust.
jemalloc
mimalloc - mimalloc is a compact general purpose allocator with excellent performance.
Confluent Kafka Golang Client - Confluent's Apache Kafka Golang client