Profiling Rust NIFs in Elixir
Profiling is an essential part of any software project where performance is a requirement. Computers are complex things and we layer abstractions and indirections on top of them that make things hard to reason about. At the end of the day, hard numbers are needed to discover where the issues really are.
Luckily, there is a lot of great tooling for both benchmarking and profiling. Some languages (like Golang and Elixir) have profiling tools built in, and at this point pretty much all ecosystems have libraries that will provide what you need. These tools are generally pretty easy to use, but they also generally assume that you don’t leave the language.