0.8.1 (current) Thoroughness: Low Understanding: Medium
by kpreid on 2023-10-14
This review is from Crev, a distributed system for code reviews. To add your review, set up cargo-crev
.
0.8.1 (current) Thoroughness: Low Understanding: Medium
by kpreid on 2023-10-14
Crates in the crates.io registry are tarball snapshots uploaded by crates' publishers. The registry is not using crates' git repositories. There is absolutely no guarantee that the repository URL declared by the crate belongs to the crate, or that the code in the repository is the code inside the published tarball.
To review the actual code of the crate, it's best to use cargo crev open allocation-counter
. Alternatively, you can download the tarball of allocation-counter v0.8.1 or view the source online.
Good characteristics (compared to other instrumented allocators):
Limitations (compared to other instrumented allocators):
System
allocator.#[global_allocator]
itself, so whether it is used depends on whether the crate is linked, not on code in the dependent crate.Bugs noticed during review:
measure(f)
does not clean up state iff()
panics.None of those bugs affect safety.
I made this review while searching for an instrumented allocator I could use in tests, and others I have evaluated are https://docs.rs/stats_alloc/0.1.10/ and https://docs.rs/logging-allocator/0.1.1/.