GeistHaus
log in · sign up

GitHub - brendangregg/FlameGraph: Stack trace visualizer

github.com

Stack trace visualizer. Contribute to brendangregg/FlameGraph development by creating an account on GitHub.

60 pages link to this URL
Python Profiling : Deterministic vs Statistical Profilers - Performance Engineering

Different python profiling tools use different methodologies for gathering performance data and hence have different runtime overhead. Before choosing a profiler tool it is helpful to understand two commonly employed techniques for collecting performance data : Deterministic profiling Deterministic profilers execute trace functions at various points of interest (e.g. function call, function return) and record […]

0 inbound links article en
Summary Of Python Profiling Tools – Part I - Performance Engineering

If you are working in the area of scientific computing, in academia or industry, most likely you are using Python in some form. Traditionally Python is described as slow when it comes to performance and there are number of discussions about speed compared to native C/C++ applications 1 2. The goal of this post is […]

1 inbound link article en ProfilerPython
Brendan Gregg's Blog

Investigating Java warmup performance using flame graphs and the Linux perf profiler.

1 inbound link en javaflame graphsflamegraphswarmupperformanceblog
Inspecting OpenJDK performance on Linux using perf

Analyzing performance can be challenging, especially when diagnosing regressions. Finding the right methods to investigate performance issues is often time-consuming and complex. You may have heard of perf, a powerful Linux tool for performance measurement, available from the kernel. This post will guide you through using perf to analyze performance on Linux, serving as a practical “quick start” guide for those new to profiling Java applications with perf. It’s not meant to be a comprehensive tutorial, as many of those already exist in the extensive documentation of perf and other excellent sources. However, the examples provided may be all you need or, at the very least, give you an idea of where to look for deeper insights.

Profiling tool: async-profiler

Updated on 2023-06-09: bumped version numbers and usage examples.A more comprehensive clj-async-profiler documentation is available on Knowledge Base.Runnable code for this post can be found here.I...

2 inbound links article en
Unleashing the power of frame pointers for profiling pt.2 - Writing a basic profiler

In the previous blog about the program execution environment, we introduced the concept of stack unwinding with frame pointers as one of the techniques leveraged for profiling a program. In this blog, we’ll see practically how we can build a basic sampling-based continuous profiler. Since we don’t want the application to necessarily be instrumented, we can use the Linux kernel instrumentation. Thanks to eBPF we’re able to dynamically load and attach the profiler program to specific kernel entry points, limiting the introduced overhead by exchanging data with userspace through eBPF maps.

2 inbound links article en posts profilingoptimizationebpf
Clojure's slow start — what's inside?

It is not surprising that the question of Clojure's long startup time is raised time and time again on forums and social media. This topic concerns users who want to use Clojure as a scripting lang...

4 inbound links article en
Profiling Elixir with Perf

In this post we will show you how to profile your Elixir application with perf and visualise its stack trace with Flamegraphs. We’ll create a basic Phoenix web server with two endpoints which we will call in order to profile and analyse its performance.

0 inbound links article en
Slow start of a systemd unit implemented in .NET

In this post I would like to describe my recent experience of troubleshooting a slow-starting systemd unit implemented in .NET. While Linux troubleshooting is still new territory for me, I am gradu…

1 inbound link article en
Analyzing PostgreSQL Performance Using Flame Graphs

A flame graph is a graphical representation that helps to quickly understand where a program spends most of its processing time. These graphs are based on sampled information collected by a profiler while the observed software is running. At regular intervals, the profiler captures and stores the current call stack. A flame graph is then generated from this data to provide a visual representation of the functions in which the software spends most of its processing time. This is useful for understanding the characteristics of a program and for improving its performance. This blog post explores the fundamentals of flame graphs and offers a few practical tips on utilizing them to identify and debug performance bottlenecks in PostgreSQL.

0 inbound links article en
I threw together my own profiler

While hacking at Subterranean (some not-a-game blocky cave game thing), I was experiencing weird groups of stutters happening about once per second that I was having trouble figuring out the cause of.

0 inbound links article en CC BY-SA 4.0
Профайлинг нагруженных Python-программ: печальная история со счастливым концом

Профилирование - это первое, что должно приходить в голову, когда у нас встаёт вопрос производительности приложения. Если грамотно провести профилирование приложения, то суть проблем произвдительности становится намного понятнее, и фиксы можно создавать уже более осмысленно.

0 inbound links article ru
profiling.sampling — Statistical profiler

Source code: Lib/profiling/sampling/ Tachyon logo The profiling.sampling module, named Tachyon, provides statistical profiling of Python programs through periodic stack sampling. Tachyon can run sc...

0 inbound links website en
Linux perf Examples

Examples of using the Linux perf command, aka perf_events, for performance analysis and debugging. perf is a profiler and tracer.

40 inbound links en linuxlinux perfperf_eventsprofilingPMCs
Flame Graphs

Homepage for Flame Graphs: a visualization for stack traces.

92 inbound links en Flame Graphsflamegraphsperformance visualization
Brendan Gregg's Blog

Linux load averages explained, including why they include the uninterruptible I/O sleep state.

10 inbound links en load averageslinux load averagestask_uninterruptiblenr_uninterruptibleuninterruptibeblog
Profiling in production with function call traces

We introduce a new C++ function tracing profiler, and discuss how to use such a profiler, how to make one for native code, and how a simple CPU hardware feature can make tracing very cheap for compiled, interpreted and JITted languages

1 inbound link article en