Giter VIP home page Giter VIP logo

awesome-profiling's Introduction

Awesome profiling

General utilites

  • https://ebpf.io/: Revolutionary sandboxed kernel profiling technology that makes it easier to build various profiling utilities. Tons of options here in Python https://github.com/iovisor/bcc
  • Dtrace: Available on Solaris (includes Mac but not Ubuntu) with notable highlights prstat and mpstat. prstat is not available on Ubuntu but can be replicated with htop and ps
  • collectl: Full system level profiling including CPU, disk, memory and network
  • perf: CPU level performance counters
  • gprof: sampling and instrumentation aware profiling
  • google perf tools
  • Heaptrack: a heap memory profiler for linux
  • jemalloc: another heap memory profiler
  • ETW: Event tracing for windows
  • Mac OS instruments: Mac OS instruments for profiling based on top of Dtrace
  • Renderdoc: Multi platform graphics debugger for OpenGL and Vulkan
  • Windows Perf Analyzer: If htop could plot lines, windows only but recently added support for android
  • htop: Visualize utilization as bar charts or line charts, issue commands to processes

Python specific

  • psutil: Like htop but from within your python code
  • pyinstrument:python call stack visualizer
  • pycallgraph: Visualize call stack as a graph (Maintenance mode)
  • py-spy: Sampling profiler for Python
  • line profiler: Line by line profiling
  • palanteer: Fanciest UI, looks like something out of the matrix
  • yappi: multi threaded profiling
  • Pycharm profiler: Built in profiler in Pycharm
  • TAU
  • gprof2dot: Graphical call stack visualizer (Maintenance mode)
  • snakeviz: Visualize python cprofile data
  • scalene: CPU and GPU based profiling with a web GUI
  • pprofile: Very low overhead line profile

Java specific

  • JProfiler: Java profiler for cpu, multithreading, graphical call stack visualizer
  • Java visual VM: Bundled with JDK

C# specific

C++ specific

  • Tracy: Windows only but very comprehensive and helpful for game development
  • Callgrind: Valgrind extension

Web specific

Machine Learning specific

  • Pytorch profiler: Visual profiles of computations and data loading for PyTorch models, requires changes to code

CPU specific

GPU specific

Books

Blogs

  • Flame Graphs: flame graphs vs flame charts, off cpu profiling, icicle charts and more
  • Sampling vs Tracing: sampling based profilers are easier to use since they don't require any code change while instrumentation based profilers require code changes but are generally more informative
  • C++ performance tools: reddit post with tons of links

Talks

Understanding code structure

awesome-profiling's People

Contributors

msaroufim avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.