RSS feed for this section

Archive | pprof

Go Profiler Internals

Profilers provide application developers with critical execution insights that enable resolving performance issues, locating memory leaks, thread contention, and more. Although hot code stack traces and call graphs generated by the profilers are usually self-explanatory, it is sometimes necessary to understand how profilers work underneath to infer even greater details about applications from the generated […]

Read More Comments Off on Go Profiler Internals

Go Performance Playground

The Go Performance Playground is an online CPU profiler for Golang. It allows developers to quickly measure execution time of the code, profile it to find bottlenecks with line-of-code precision, iteratively optimize algorithms, and more. Underneath, it uses StackImpact’s pprof-based profiler. Go Performance Playground is written in Go and was inspired by the original Go […]

Read More Comments Off on Go Performance Playground

The Strategic Importance of Built-In Performance Toolset in Golang

Go programming language Go is a relatively new open source programming language created by Google. Considering its recent growth, many developers and organizations have naturally become interested in it. With its main features, such as compiled-language performance, powerful and simple concurrency model and cross-compilation support, it can be considered as a true cloud language. A […]

Read More Comments Off on The Strategic Importance of Built-In Performance Toolset in Golang

Detecting Lock Contention in Go

Mutexes are often a source of contention, resulting in performance issues or deadlocks. This is no different in Go. In some cases, e.g. obvious deadlock situations where all goroutines are waiting, the runtime may be able to detect/predict mutex-related issues and panic. Generally, the problems will manifest themselves at the application logic level. Let’s look […]

Read More Comments Off on Detecting Lock Contention in Go

Monitoring CPU Hot Spots in Production Go Applications

Identifying CPU hots spots with line-of-code precision is critical when it comes to troubleshooting performance issues, identifying performance bottlenecks or improving response for a better customer experience. Go’s pprof toolset has powerful tools for CPU profiling and visualizing different aspects of profiles. It is very useful in the development stage. However, profiling CPU usage in […]

Read More Comments Off on Monitoring CPU Hot Spots in Production Go Applications

Memory Leak Detection in Production Go Applications

Memory leaks are very common in almost any language, including garbage collected languages. Go is not an exception. A reference to an object, if not properly managed, may be left assigned even if unused. This usually happens on an application logic level, but can also be an issue inside of an imported package. Unfortunately, it […]

Read More Comments Off on Memory Leak Detection in Production Go Applications

Profiling Go Applications in Production

Production environments are different from development and staging. Whether optimizing application performance or trying to find a problem root cause, it is often necessary to use Go’s profiling tools in production. Obviously, before doing anything in production, especially for performance optimizations, it makes sense to try to simulate production load and generate, for example, CPU […]

Read More Comments Off on Profiling Go Applications in Production