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

Detecting and Locating Memory Leaks in Production Python Applications

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. If memory leak appears in production environment, it is very hard to detect and fix it in development or staging […]

Read More Comments Off on Detecting and Locating Memory Leaks in Production Python Applications

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

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

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