3 ms·
This is easy in most modern programming languages. JVM ecosystem has IntelliJ Idea profiler and similar advanced tools (AFAIK). .NET has VS/Rider/dotnet-trace
by neonsunset 3y ago
This is easy in most modern programming languages.
JVM ecosystem has IntelliJ Idea profiler and similar advanced tools (AFAIK).
.NET has VS/Rider/dotnet-trace profilers (they are very detailed) to produce flamegraphs.
Then there are native profilers which can work with any AOT compiled language that produces canonically symbolicated binaries: Rust, C#/F#(AOT mode), Go, Swift, C++, etc.
For example, you can do `samply record ./some_binary`[0] and then explore multi-threaded flamegraph once completed (I use it to profile C#, it's more convenient than dotTrace for preliminary perf work and is usually more than sufficient).
[0] https://github.com/mstange/samply https://github.com/mstange/samply
- TylerE 3y agoI mean sure, but I've never seen much in a flamegraph besides noise.
- neonsunset 3y agoMy experience is complete opposite. You just need to construct a realistic load test for the code and the bottlenecks will stand out (more often than not). Also there is learning curve to grouping and aggregating data.