Performance analysis

Top 23 Performance analysis Open-Source Projects

  • lighthouse

    Automated auditing, performance metrics, and best practices for the web.

    Project mention: Top 20 Frontend Interview Questions With Answers | dev.to | 2024-02-03

    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.

  • py-spy

    Sampling profiler for Python programs

    Project mention: Minha jornada de otimização de uma aplicação django | dev.to | 2024-03-13
  • 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

    Project mention: Memray – A Memory Profiler for Python | news.ycombinator.com | 2024-02-10

    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)

  • go-perfbook

    Thoughts on Go performance optimization

  • tracy

    Frame profiler

    Project mention: Tracy: Real-time nanosecond resolution frame profiler | news.ycombinator.com | 2024-03-22
  • pprof

    pprof is a tool for visualization and analysis of profiling data

    Project mention: Profiling Caddy | news.ycombinator.com | 2024-02-15

    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)

  • 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.

    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-04

    I've always liked sitespeed.io.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • perfview

    PerfView is a CPU and memory performance-analysis tool

    Project mention: Microsoft's perfview - Do you care about this tool? | /r/microsoft | 2023-06-13

    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).

  • hotspot

    The Linux perf GUI for performance analysis.

    Project mention: Hotspot: A GUI for the Linux perf profiler | /r/C_Programming | 2023-09-12
  • coz

    Coz: Causal Profiling

    Project mention: Coz: Finding code that counts with causal profiling | news.ycombinator.com | 2024-01-16
  • 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.

    Project mention: Easy logging A logging system for c++20 | /r/cpp | 2023-12-09

    Easylogging++ https://github.com/abumq/easyloggingpp

  • JITWatch

    Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

    Project mention: It's 2023, so of course I'm learning Common Lisp | news.ycombinator.com | 2023-07-26

    You 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.

  • 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.

    Project mention: Fgprof – The Full Go Profiler | news.ycombinator.com | 2024-03-05
  • MTuner

    MTuner is a C/C++ memory profiler and memory leak finder for Windows, PlayStation 4 and 3, Android and other platforms

    Project mention: MTuner: C/C memory profiler and memory leak finder | /r/hypeurls | 2023-06-25
  • pcm

    Intel® Performance Counter Monitor (Intel® PCM)

    Project mention: Zen 5's Leaked Slides | news.ycombinator.com | 2023-10-08

    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)

  • FinanceToolkit

    Transparent and Efficient Financial Analysis

    Project mention: Work with First, Second and Third Order Greeks Through the Finance Toolkit | news.ycombinator.com | 2024-01-17

    Over 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....

  • php-spx

    A simple & straight-to-the-point PHP profiling extension with its built-in web UI

  • likwid

    Performance monitoring and benchmarking suite

  • MTHawkeye

    Profiling / Debugging assist tools for iOS. (Memory Leak, OOM, ANR, Hard Stalling, Network, OpenGL, Time Profile ...)

  • import-cost

    displays the import size of the package you are importing inside the code editor

  • webperf-snippets

    ⚡️ 💾 Web Performance Snippets

    Project mention: Web Performance Snippets | news.ycombinator.com | 2023-05-27
  • honest-profiler

    A sampling JVM profiler without the safepoint sample bias

  • tidyquant

    Bringing financial analysis to the tidyverse

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-03-22.

Performance analysis related posts

Index

What are some of the best open-source Performance analysis projects? This list will help you:

Project Stars
1 lighthouse 27,791
2 py-spy 11,782
3 scalene 11,061
4 go-perfbook 10,537
5 tracy 7,718
6 pprof 7,399
7 sitespeed.io 4,624
8 perfview 3,961
9 hotspot 3,840
10 coz 3,818
11 easyloggingpp 3,661
12 JITWatch 3,005
13 fgprof 2,740
14 MTuner 2,538
15 pcm 2,535
16 FinanceToolkit 2,333
17 php-spx 1,872
18 likwid 1,541
19 MTHawkeye 1,466
20 import-cost 1,329
21 webperf-snippets 1,318
22 honest-profiler 1,242
23 tidyquant 831
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com