{"repo":"felixge/fgprof","free":true,"listed":false,"github":"https://github.com/felixge/fgprof","clone":"git clone https://github.com/felixge/fgprof.git","description":"🚀 fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.","language":"Go","stars":3110,"topics":["golang","go","performance","performance-analysis","profiling","profiling-library"],"license":"MIT","category":"analytics","readme_excerpt":":rocket: fgprof - The Full Go Profiler fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together. Go's builtin sampling CPU profiler can only show On-CPU time, but it's better than fgprof at that. Go also includes tracing profilers that can analyze I/O, but they can't be combined with the CPU profiler. fgprof is designed for analyzing applications with mixed I/O and CPU workloads. This kind of profiling is also known as wall-clock profiling. ⚠️ Please upgrade to Go 1.19 or newer. In older versions of Go fgprof can cause significant STW latencies in applications with a lot of goroutines ( 1-10k). See CL 387415 for more details. Quick Start If this is the first time you hear about fgprof, you should start by reading about The Problem & How it Works. There is no need to choose between fgprof and the builtin profiler. Here is how to add both to your application: fgprof is compatible with the go tool pprof visualizer, so taking and analyzing a 3s profile is as simple as: Additionally fgprof supports the plain text format used by Brendan Gregg's FlameGraph utility: Which tool you prefer is up to you, but one thing I like about Gregg's tool is that you can filter the plaintext files using grep which can be very useful when analyzing large programs. If you don't have a program to profile right now, you can go run ./example which should allow you to reproduce the graphs you see above. If you've never seen such graphs before, and are","default_branch":null,"files":null,"tree":[],"storefront":"/r/felixge","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/felixge/fgprof/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}