RSS feed for this section

Archive | Golang

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

Automatic Performance Profiling in Go Applications

In the previous blog posts we wrote about the importance and problems with production profiling in Go: Continuous, Low-Overhead Production Profiling Profiling Go Applications in Production In this post we’ll explain how complete automation of production profiling is possible and why continuous visibility into production application performance is critical. Automating pprof When pprof is used […]

Read More Comments Off on Automatic Performance Profiling in Go Applications

Measuring HTTP Handlers in Go

StackImpact’s profiling agent automatically and continuously profiles Golang applications’ CPU usage, memory allocations, network wait and other hot spots without requiring any special tracing mechanisms. The profiles are regularly reported to the Dashboard for historical performance analysis. The agent only needs to be initialized once when the program starts. Automatic profiling also covers HTTP request […]

Read More Comments Off on Measuring HTTP Handlers in Go

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

Application Performance Tools Before and After DevOps

The traditional split of responsibilities between application development and its operation in production assumes that application performance-related efforts are developers’ business. At the same time, application availability and uptime are managed by operations teams. Different tools for application development and production operations This role split has also implicitly changed the way in which profiling and […]

Read More Comments Off on Application Performance Tools Before and After DevOps

Continuous, Low-Overhead Production Profiling

The importance of performance profiling Profiling tools are a critical part of application development and operations. Problems, such as memory leaks or high CPU load, may make applications, developed over the course of serval months, unusable in minutes. Problems like this are very hard to localize and fix without special tools, such as profilers. The […]

Read More Comments Off on Continuous, Low-Overhead Production Profiling

Automatic Database Call Tracing in Go Applications

Some of the most common root causes of performance bottlenecks in web applications are databases. This is true for any language, and Golang is no exception. To trace database call performance in Go, legacy tracing mechanisms should be added around each query or call, which will decrease the readability of the code. This mechanism is […]

Read More Comments Off on Automatic Database Call Tracing in Go Applications

It’s Time for Faster Languages And Optimized Applications

The Moore’s Law is in crisis. The slowdown in the rate at which CPU speed is increasing has became noticeable as we’ve approached quantum sizes for transistors, where things behave differently, e.g. when the tunneling effect kicks in. There is enough written on this topic already. While alternatives to silicon chips are being actively researched, […]

Read More Comments Off on It’s Time for Faster Languages And Optimized Applications

Monitoring Errors and Panics in Go

Every error, exception or crash in a production application can directly affect the customer experience. To improve application quality, errors and crashes should be continuously detected and eliminated. To do this efficiently, the following information is necessary: The stack traces of the errors and crashes. Without this information localizing the root cause may be extremely […]

Read More Comments Off on Monitoring Errors and Panics in Go

Measure Go Code Segment Performance and Detect Bottlenecks

StackImpact automatically covers many aspects of application performance measurement, including hot spots in CPU usage, memory allocations, I/O, channels and lock contention. It also provides a bottleneck view for HTTP handlers and calls as well as multiple runtime metrics. It is sometimes necessary to measure application specific code performance and trace bottlenecks. For these cases, […]

Read More Comments Off on Measure Go Code Segment Performance and Detect Bottlenecks