SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Performance analysis Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
scalene
Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python with AI-powered optimization proposals
-
sitespeed.io
sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
easyloggingpp
C++ logging library. It is extremely powerful, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.
-
JITWatch
Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.
-
fgprof
🚀 fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.
-
MTuner
MTuner is a C/C++ memory profiler and memory leak finder for Windows, PlayStation 4 and 3, Android and other platforms
-
MTHawkeye
Profiling / Debugging assist tools for iOS. (Memory Leak, OOM, ANR, Hard Stalling, Network, OpenGL, Time Profile ...)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Google Core Vitals now represent the most important metrics to focus on when it comes to technical SEO. Google Core Vitals are a set of standardized metrics that Google uses to evaluate the user experience offered by a web page and assign it a technical SEO grade. Several tools exist to measure and report technical SEO performance, but the most reliable is Google Lighthouse.
I collected a list of profilers (also memory profilers, also specifically for Python) here: https://github.com/albertz/wiki/blob/master/profiling.md
Currently I actually need a Python memory profiler, because I want to figure out whether there is some memory leak in my application (PyTorch based training script), and where exactly (in this case, it's not a problem of GPU memory, but CPU memory).
I tried Scalene (https://github.com/plasma-umass/scalene), which seems to be powerful, but somehow the output it gives me is not useful at all? It doesn't really give me a flamegraph, or a list of the top lines with memory allocations, but instead it gives me a listing of all source code lines, and prints some (very sparse) information on each line. So I need to search through that listing now by hand to find the spots? Maybe I just don't know how to use it properly.
I tried Memray, but first ran into an issue (https://github.com/bloomberg/memray/issues/212), but after using some workaround, it worked now. I get a flamegraph out, but it doesn't really seem accurate? After a while, there don't seem to be any new memory allocations at all anymore, and I don't quite trust that this is correct.
There is also Austin (https://github.com/P403n1x87/austin), which I also wanted to try (have not yet).
Somehow this experience so far was very disappointing.
(Side node, I debugged some very strange memory allocation behavior of Python before, where all local variables were kept around after an exception, even though I made sure there is no reference anymore to the exception object, to the traceback, etc, and I even called frame.clear() for all frames to really clear it. It turns out, frame.f_locals will create another copy of all the local variables, and the exception object and all the locals in the other frame still stay alive until you access frame.f_locals again. At that point, it will sync the f_locals again with the real (fast) locals, and then it can finally free everything. It was quite annoying to find the source of this problem and to find workarounds for it. https://github.com/python/cpython/issues/113939)
Project mention: Tracy: Real-time nanosecond resolution frame profiler | news.ycombinator.com | 2024-03-22
The pprof format is not tied to Go. From my understanding, it's used within Google across multiple languages. The format is defined in the pprof repository[0], and the visualization tool is source-language agnostic. I've seen libraries in numerous languages (e.g. Python, Java) to publish profiles in pprof format. This is an indicator the pprof format has become de-facto. Grafana Pyroscope[1] is a tool that's capable of parsing the pprof format, agnostic to the source programming language, and has instructions for Go, Java, Python, Ruby, node.js, Rust, and .NET.
My understanding is that you're searching for a combination of the profiles, metrics, and tracing. Caddy supports all 3.
[0] https://github.com/google/pprof/blob/main/doc/README.md
[1] https://grafana.com/docs/pyroscope/latest/
metrics and tracing need to be manually enabled (for now, perhaps)
Project mention: Is there a way to accurately measure website speed so I can document logs of changes to site speed and correlate that with changes to the website? | /r/webdev | 2023-08-04I've always liked sitespeed.io.
It is fascinating to see so many distributed nugets of software lying around for specific use cases. One of them is perfview by Microsoft (https://github.com/microsoft/perfview).
Easylogging++ https://github.com/abumq/easyloggingpp
Project mention: It's 2023, so of course I'm learning Common Lisp | news.ycombinator.com | 2023-07-26You can kind of do the same as DISASSEMBLE in Clojure.
There are some helper projects like https://github.com/Bronsa/tools.decompiler, and on the OpenJDK JitWatch (https://github.com/AdoptOpenJDK/jitwatch), other JVMs have similar tools as well.
It isn't as straightforward as in Lisp, but it is nonetheless doable.
I don't know how often it's a problem, but I work for a company doing software video encoding, and we always fill up all the dimm slots on servers to have as much bandwidth as possible, even if we have only really use maybe 1/4 of the RAM.
I'm not sure any of the standard Linux tools can show you memory bandwidth usage easily (maybe perf), I know we use Intel PCM (https://github.com/intel/pcm) and AMDuProfPCM (https://www.amd.com/en/developer/uprof.html)
Project mention: Work with First, Second and Third Order Greeks Through the Finance Toolkit | news.ycombinator.com | 2024-01-17Over the last year I've spend a significant amount of time creating a Finance Toolkit in Python, it currently features over 150+ different metrics such as financial ratios, models, risk and performance metrics, technical indicators, macro-economic parameters and since today also all Greeks.
The Finance Toolkit is written in Python and is meant as a free solution to acquire a large range of financial metrics. My goal is to make financial calculations accessible to everyone as there is no point in reinventing the wheel over and over again which I've seen countless of times happen given that I work in the Financial Sector myself.
If you are interested give it a go: https://github.com/JerBouma/FinanceToolkit and find the recent release notes here that talk about the Greeks: https://github.com/JerBouma/FinanceToolkit/releases/tag/v.1....
Performance analysis related posts
-
Coz: Causal Profiling
-
S3 Benchmark: Measure Amazon S3's performance from any location
-
Minha jornada de otimização de uma aplicação django
-
Fgprof – The Full Go Profiler
-
Profiling Caddy
-
Coz: Finding code that counts with causal profiling
-
Pg_gather: A SQL-only script to scan PostgreSQL for potential problems
-
A note from our sponsor - SaaSHub
www.saashub.com | 4 May 2024
Index
What are some of the best open-source Performance analysis projects? This list will help you:
Project | Stars | |
---|---|---|
1 | lighthouse | 27,864 |
2 | py-spy | 11,864 |
3 | scalene | 11,174 |
4 | go-perfbook | 10,537 |
5 | tracy | 7,856 |
6 | pprof | 7,483 |
7 | sitespeed.io | 4,635 |
8 | perfview | 3,978 |
9 | coz | 3,932 |
10 | hotspot | 3,874 |
11 | easyloggingpp | 3,678 |
12 | JITWatch | 3,015 |
13 | fgprof | 2,759 |
14 | MTuner | 2,557 |
15 | pcm | 2,555 |
16 | FinanceToolkit | 2,364 |
17 | php-spx | 1,882 |
18 | likwid | 1,556 |
19 | MTHawkeye | 1,469 |
20 | import-cost | 1,334 |
21 | webperf-snippets | 1,319 |
22 | honest-profiler | 1,242 |
23 | tidyquant | 831 |
Sponsored