Skip to main content

Yet Another Python Profiler

Project description

Yappi

[![Build Status](https://drone.io/bitbucket.org/sumerc/yappi/status.png)](https://drone.io/bitbucket.org/sumerc/yappi/latest)

Motivation:

CPython standard distribution is coming with three profilers. cProfile, Profile and hotshot. cProfile module is implemented as a C module based on lsprof, Profile is in pure Python and the hotshot can be seen as a small subset of a cProfile. The motivation to implement a new profiler is that all of these profilers lacks the support of multi-threaded programs. If you want to profile a multi-threaded application, you must give an entry point to these profilers and then maybe merge the outputs. None of these profilers is designed to work on long-running multi-threaded application. While implementing a game server, it turns out that is is impossible to profile an application retrieve the statistics then stop and then start later on on the fly(without affecting the profiled application). With the experience of implementing a game server in Python, we have identified most of the problems, tricky parts regarding profiler usage and so, we have come up with simple but powerful requirements.

Features:

  • Ability to hook underlying threading model events/properties. (new in 0.92)

  • Decorator to profile individual functions easily. (new in 0.92)

  • Profiler results can be saved in callgrind and pstat formats. (new in 0.82)

  • Profiler results can be merged from different sessions on-the-fly. (new in 0.82)

  • Profiler results can be easily converted to pstats. (new in 0.82)

  • Supports profiling per-thread CPU time. See http://en.wikipedia.org/wiki/CPU_time for details. (new in 0.62)

  • Profiling of multithreaded Python applications transparently.

  • Profiler can be started from any thread at any time.

  • Ability to get statistics at any time without even stopping the profiler.

  • Various flags to arrange/sort profiler results.

Limitations:

  • Latest version of Yappi supports Python 2.6.x <= x <= Python.3.4

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yappi-0.92.tar.gz (24.4 kB view details)

Uploaded Source

File details

Details for the file yappi-0.92.tar.gz.

File metadata

  • Download URL: yappi-0.92.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for yappi-0.92.tar.gz
Algorithm Hash digest
SHA256 6b8b1b222dbd6b6c1e64433ee085e0f86b0fd368f73d6cd19563a842b24cf000
MD5 d7b6b0bc0a0f738d428b82e655f0290f
BLAKE2b-256 1efeea58fb251a68606325a08634d2a0e5284dc46c16ba084c897a7a917a7377

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page