RSS feed for this section

Archive | CPU Profiling

Profiling HTTP Handler Latency in Go

Profilers are essential tools for understanding what code cases high CPU, I/O or memory consumption. Generated profiles represent an aggregated view of application execution, regardless of the type of work the server is doing. In latency-critical applications, the latency usually has a higher importance than resource consumption in terms of user experience or other business […]

Read More Comments Off on Profiling HTTP Handler Latency in Go

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

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

Continuous CPU Profiling for Python Applications

There are multiple reasons a program will consume more CPU resources than excepted. In case of high computational complexity of an algorithm, the amount of data it operates on will drive the CPU usage. For I/O intensive programs, data processing may be the bottleneck. Garbage collection activity is another usual suspect. To optimize or troubleshoot […]

Read More Comments Off on Continuous CPU Profiling for Python Applications

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

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

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