RSS feed for this section

Archive | Golang

Profiling Most Relevant Sections of the Application

Long-running applications are not always busy doing work. In case of, for instance, web, serverless or microservice applications, the work is done on every request and the processes are idle the rest of the time. Similarly, if the program is processing messages from the queue, it may be idle when it is waiting for messages. […]

Read More Comments Off on Profiling Most Relevant Sections of the Application

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

Understanding Application Footprint on Infrastructure with Code-Level Detail

Understanding application resource consumption The nature of the application defines its resource impact on infrastructure. An application, which stores a lot of session data, will have big memory footprint. An application that processes data may have more CPU footprint. Depending on the traffic or the number of data being processed, an application will be scaled […]

Read More Comments Off on Understanding Application Footprint on Infrastructure with Code-Level Detail

Continuous Performance Profiling

Computational complexity requirements The difference between exponential, linear, logarithmic and constant execution time of a program is critical for various use cases. Even if an algorithm is purposely designed to satisfy a certain complexity class, there are multiple reasons why it might not. An underlying library, OS or even hardware can be the root cause […]

Read More Comments Off on Continuous Performance Profiling

StackImpact Golang Agent 2.0

The main focus in development of the version 2.0 of the Go agent was to improve reliability and reduce agent overhead by upgrading and tuning the profiling capabilities. Here is the summary of main changes: Some of the profiles in version 1.x were relying on Go’s tracer, which records every blocking event. It has high […]

Read More Comments Off on StackImpact Golang Agent 2.0

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

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