Wpis z mikrobloga

#programowanie #golang Język go jest tak prosty, że wprawdzie nie działa z nim żaden popularny analizator pamięci, który działałby z C/C++/Rust, np. heaptrack, ale za to profilera przeznaczonego dla Go (pprof) nie da się po prostu użyć na zbudowanym programie. Trzeba zmodyfikować program i przebudować projekt! Ja się zastanawiam jak ludzie mogą w tym języku pracować, jak coś co jest trywialne w innych językach tutaj wymaga takich kombinacji.

https://pkg.go.dev/runtime/pprof
  • 1
Nieprawda. Runtime go zawsze zbiera statystyki, problemem może być ich odczyt. Jak masz aplikację serwerową to wystarczy użyć tego pakietu https://pkg.go.dev/net/http/pprof i możesz zbierać statystyki w dowolnym momencie.

Co do samego poziomu to jest dużo dużo lepiej niż w przypadku aplikacji natywnych. Najbardziej jestem pod wrażeniem tego co jest dostępne pod /debug/pprof/trace, bo mamy tam takie statystyki jak np. w których miejscach siedzimy długo na mutexach albo jakie syscalle blokują program.