{ "info": { "author": "Sumer Cip", "author_email": "sumerc@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "![Logo](https://i.imgur.com/xxmgGmn.png)\n# Yappi\n**Y**et **A**nother **P**ython **P**rof**i**ler, but this time support Multithread/CPU time profiling.\n\n[![Build Status](https://www.travis-ci.org/sumerc/yappi.svg?branch=master)](https://www.travis-ci.org/sumerc/yappi)\n![](https://img.shields.io/pypi/v/yappi.svg)\n![](https://img.shields.io/pypi/dw/yappi.svg)\n![](https://img.shields.io/pypi/pyversions/yappi.svg)\n![](https://img.shields.io/github/last-commit/sumerc/yappi.svg)\n![](https://img.shields.io/github/license/sumerc/yappi.svg)\n\n\n## Motivation\n\nCPython standard distribution comes with three profilers. `cProfile`, `Profile` and `hotshot`. \n`cProfile` is implemented as a C module based on `lsprof`, `Profile` is in pure Python and \n`hotshot` can be seen as a small subset of a cProfile. \n\n*The major issue is that all of these profilers lack support for multi-threaded programs and CPU time.*\n\nIf you want to profile a multi-threaded application, you must give an entry point to these profilers and then maybe merge \nthe outputs. None of these profilers are designed to work on long-running multi-threaded application.It is impossible to profile an application retrieve the statistics then stop and then start later on the fly (without affecting the profiled\napplication). \n\n## Highlights\n\n- Profiler can\u00a0be\u00a0started/stopped\u00a0at\u00a0any\u00a0time\u00a0from\u00a0any\u00a0thread\u00a0in\u00a0the\u00a0application.\n- Profile\u00a0statistics\u00a0can\u00a0be\u00a0obtained\u00a0from\u00a0any\u00a0thread\u00a0at\u00a0any\u00a0time.\n- Profile\u00a0statistics\u00a0can show actual [CPU Time](http://en.wikipedia.org/wiki/CPU_time) used instead of Wall time.\n- \"Profiler pollution\" (effect\u00a0on\u00a0the\u00a0application\u00a0run-time)\u00a0is\u00a0very\u00a0minimal.\n\n## Installation\n\nCan be installed via PyPI\n\n```\n$ pip install yappi\n```\n\nOR from the source directly.\n\n```\n$ pip install git+https://github.com/sumerc/yappi#egg=yappi\n```\n\n## Documentation\n\n- [Introduction](doc/introduction.md)\n- [Clock Types](doc/clock_types.md)\n- [API](doc/api.md)\n- [THANKS](THANKS.md)\n\n## Features\n- Profiler\u00a0results\u00a0can\u00a0be\u00a0saved\u00a0in\u00a0[callgrind](http://valgrind.org/docs/manual/cl-format.html)\u00a0or\u00a0[pstat](http://docs.python.org/3.4/library/profile.html#pstats.Stats)\u00a0formats.\u00a0(*new\u00a0in\u00a00.82*)\n- Profiler\u00a0results\u00a0can\u00a0be\u00a0merged\u00a0from\u00a0different\u00a0sessions\u00a0on-the-fly.\u00a0(*new\u00a0in\u00a00.82*)\n- Profiler\u00a0results\u00a0can\u00a0be\u00a0easily\u00a0converted\u00a0to\u00a0pstats.\u00a0(*new\u00a0in\u00a00.82*)\n- Profiling\u00a0of\u00a0multithreaded\u00a0Python\u00a0applications\u00a0transparently.\n- Supports\u00a0profiling\u00a0per-thread\u00a0[CPU time](http://en.wikipedia.org/wiki/CPU_time) (*new\u00a0in\u00a00.62*)\n- Profiler\u00a0can\u00a0be\u00a0started\u00a0from\u00a0any\u00a0thread\u00a0at\u00a0any\u00a0time.\n- Ability\u00a0to\u00a0get\u00a0statistics\u00a0at\u00a0any\u00a0time\u00a0without\u00a0even\u00a0stopping\u00a0the\u00a0profiler.\n- Various\u00a0flags\u00a0to\u00a0arrange/sort\u00a0profiler\u00a0results.\n- Supports\u00a0Python\u00a0>= 2.7.x\n\n## Limitations:\n* Threads must be derived from \"threading\" module's Thread object.\n\n## Talks\n\n- Python Performance Profiling: The Guts And The Glory\n\n [![Youtube link](https://img.youtube.com/vi/BOKcZjI5zME/0.jpg)](https://www.youtube.com/watch?v=BOKcZjI5zME)\n\n## PyCharm Integration\n\nYappi is the default profiler in `PyCharm`. If you have Yappi installed, `PyCharm` will use it. See [the official](https://www.jetbrains.com/help/pycharm/profiler.html) documentation for more details.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sumerc/yappi", "keywords": "python thread multithread profiler", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "yappi", "package_url": "https://pypi.org/project/yappi/", "platform": "", "project_url": "https://pypi.org/project/yappi/", "project_urls": { "Homepage": "https://github.com/sumerc/yappi" }, "release_url": "https://pypi.org/project/yappi/1.0/", "requires_dist": null, "requires_python": "", "summary": "Yet Another Python Profiler", "version": "1.0" }, "last_serial": 4844613, "releases": { "0.54": [ { "comment_text": "", "digests": { "md5": "740f3f1533e33cafa21a889656db4970", "sha256": "d680a2783fed58a5992fcf79dacb91a1c2c603621616da980099bd416e6fadc8" }, "downloads": -1, "filename": "yappi-0.54.tar.gz", "has_sig": false, "md5_digest": "740f3f1533e33cafa21a889656db4970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15695, "upload_time": "2011-08-14T22:55:55", "url": "https://files.pythonhosted.org/packages/68/cd/4c81603ef5f27416643eac7d16e29e978c2d59c1dddd23044021885cd69c/yappi-0.54.tar.gz" }, { "comment_text": "", "digests": { "md5": "c4c75f1f9aa14536d7eab778dab69973", "sha256": "0bb77b58ae693aa21628c89ab202765a37460e11f888af48ccc83c1336833afc" }, "downloads": -1, "filename": "yappi-0.54.zip", "has_sig": false, "md5_digest": "c4c75f1f9aa14536d7eab778dab69973", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19845, "upload_time": "2011-08-17T08:03:18", "url": "https://files.pythonhosted.org/packages/d7/43/5121fb647d236b95aa31097dc930ca8742e841e3a05fa7978e2013c01f3d/yappi-0.54.zip" } ], "0.62": [], "0.82": [ { "comment_text": "", "digests": { "md5": "fbd6be3ee08207df6573d3aa14f3ea9e", "sha256": "1321532bd47ddb4998c1f1a95f51f2a6a0e652fdfe93f82a25e41e77dca78f23" }, "downloads": -1, "filename": "yappi-0.82.tar.gz", "has_sig": false, "md5_digest": "fbd6be3ee08207df6573d3aa14f3ea9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29841, "upload_time": "2014-01-06T12:52:52", "url": "https://files.pythonhosted.org/packages/ad/45/320dd5bd567cc53947e52510868523a6845503320a40e7b2e533157a979f/yappi-0.82.tar.gz" } ], "0.92": [ { "comment_text": "", "digests": { "md5": "d7b6b0bc0a0f738d428b82e655f0290f", "sha256": "6b8b1b222dbd6b6c1e64433ee085e0f86b0fd368f73d6cd19563a842b24cf000" }, "downloads": -1, "filename": "yappi-0.92.tar.gz", "has_sig": false, "md5_digest": "d7b6b0bc0a0f738d428b82e655f0290f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24442, "upload_time": "2014-07-01T17:05:15", "url": "https://files.pythonhosted.org/packages/1e/fe/ea58fb251a68606325a08634d2a0e5284dc46c16ba084c897a7a917a7377/yappi-0.92.tar.gz" } ], "0.93": [ { "comment_text": "", "digests": { "md5": "68d221209304a20991be09268fce0434", "sha256": "09c028fafb31423a46305d3dc55cf30734b66ec4607541d1b561a2ddb17d2081" }, "downloads": -1, "filename": "yappi-0.93.tar.gz", "has_sig": false, "md5_digest": "68d221209304a20991be09268fce0434", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24367, "upload_time": "2014-10-27T08:10:21", "url": "https://files.pythonhosted.org/packages/70/ad/e7212d40bcadf549e2df940ba48b4308f5e15a7cbc4b80a9c22a17df9231/yappi-0.93.tar.gz" } ], "0.94": [ { "comment_text": "", "digests": { "md5": "a02c49efe783c4e31d6bbd805a37adec", "sha256": "15cc17dba1252ecaae29ced1e96c216165d93fd3e9ea05dff1f5e5866f16bd59" }, "downloads": -1, "filename": "yappi-0.94.tar.gz", "has_sig": false, "md5_digest": "a02c49efe783c4e31d6bbd805a37adec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25173, "upload_time": "2014-12-22T10:14:40", "url": "https://files.pythonhosted.org/packages/c3/24/fc0a4d390074190895612521d643ade341b24e9b90db42b6d2e4086ad79e/yappi-0.94.tar.gz" } ], "0.98": [ { "comment_text": "", "digests": { "md5": "dc56240575c99938a924eaeb7c0d8beb", "sha256": "5f657129e1b9b952379ffbc009357d0dcdb58c50f3bfe88ffbb992e4b27b263c" }, "downloads": -1, "filename": "yappi-0.98.tar.gz", "has_sig": false, "md5_digest": "dc56240575c99938a924eaeb7c0d8beb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37074, "upload_time": "2016-10-07T08:28:42", "url": "https://files.pythonhosted.org/packages/35/43/489bf1dd0923c16b4abe09271da979ca0576662d02ba59f26cfb54e93be1/yappi-0.98.tar.gz" } ], "0.99": [ { "comment_text": "", "digests": { "md5": "e82bd6dc34745883cccd26d51f183754", "sha256": "7a81d7975eeccfaa235448b63aece052e9417f7e0f7862b827dba21be0218b22" }, "downloads": -1, "filename": "yappi-0.99.tar.gz", "has_sig": false, "md5_digest": "e82bd6dc34745883cccd26d51f183754", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38461, "upload_time": "2019-01-18T09:50:08", "url": "https://files.pythonhosted.org/packages/18/55/6a30d07853f06ede3df160ed7ce47eb635d0ac7ee5c2e308f4cd61de46cd/yappi-0.99.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "a545101aa8a435b0780f06f4723f58c8", "sha256": "7f814131515d51db62b1a3468bcb84de30499124752806a5a6e11caf0b4344bf" }, "downloads": -1, "filename": "yappi-1.0.tar.gz", "has_sig": false, "md5_digest": "a545101aa8a435b0780f06f4723f58c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38939, "upload_time": "2019-02-20T09:31:25", "url": "https://files.pythonhosted.org/packages/d2/92/7cd637a19fa2a10c0e55a44f8b36bcb83f0e1943ba8f1fb5edb15c819f2e/yappi-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a545101aa8a435b0780f06f4723f58c8", "sha256": "7f814131515d51db62b1a3468bcb84de30499124752806a5a6e11caf0b4344bf" }, "downloads": -1, "filename": "yappi-1.0.tar.gz", "has_sig": false, "md5_digest": "a545101aa8a435b0780f06f4723f58c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38939, "upload_time": "2019-02-20T09:31:25", "url": "https://files.pythonhosted.org/packages/d2/92/7cd637a19fa2a10c0e55a44f8b36bcb83f0e1943ba8f1fb5edb15c819f2e/yappi-1.0.tar.gz" } ] }