Archive by Author

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

AWS Lambda CPU and Memory Profiling (Node.js)

Profiling cloud applications Performance profiling is essential for optimizing and fixing application’s resource consumption, response time and failures. A performance issue without an execution profile is like an error without a stack trace. It will lead to a lot of manual work to get to the root cause. Profiling cloud applications and functions such as […]

Read More Comments Off on AWS Lambda CPU and Memory Profiling (Node.js)

AWS Lambda CPU and Memory Profiling (Python)

Profiling cloud applications Performance profiling is essential for optimizing and fixing application’s resource consumption, response time and failures. A performance issue without an execution profile is like an error without a stack trace. It will lead to a lot of manual work to get to the root cause. Profiling cloud applications and functions such as […]

Read More Comments Off on AWS Lambda CPU and Memory Profiling (Python)

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

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