{ "info": { "author": "Yonatan Zunger", "author_email": "zunger@humu.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython" ], "description": "[![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-374/)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](https://humu.github.io/heapprof/code_of_conduct.html)\n[![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://humu.github.io/heapprof/license.html)\n[![CircleCI](https://circleci.com/gh/humu/heapprof/tree/master.svg?style=svg&circle-token=1557bfcabda0155d6505a45e3f00d4a71a005565)](https://circleci.com/gh/humu/heapprof/tree/master)\n\n# heapprof: A Logging Heap Profiler\n\nheapprof is a logging, sampling heap profiler for Python 3.7+.\n\n* \"Logging\" means that as the program runs, it steadily generates a log of memory allocation and\n release events. This means that you can easily look at memory usage as a function of time.\n* \"Sampling\" means that it can record only a statistically random sample of memory events. This\n improves performance dramatically while writing logs, and (with the right parameters) sacrifices\n almost no accuracy.\n\nIt comes with a suite of visualization and analysis tools (including time plots, flame graphs, and\nflow graphs), as well as an API for doing your own analyses of the results.\n\n[![screenshot of split time plot](https://humu.github.io/heapprof/_images/split_time_plot.png)](https://humu.github.io/heapprof/visualizing_results.html)\n\nheapprof is complementary to [tracemalloc](https://docs.python.org/3/library/tracemalloc.html),\nwhich is a snapshotting heap profiler. The difference is that tracemalloc keeps track of live memory\ninternally, and only writes snapshots when its snapshot() function is called; this means it has\nslightly lower overhead, but you have to know the moments at which you'll want a snapshot before the\nprogram starts. This makes it particularly useful for finding leaks (from the snapshot at program\nexit), but not as good for understanding events like memory spikes.\n\nYou can install heapprof with `pip install heapprof`. heapprof is released under the\n[MIT License](https://humu.github.io/heapprof/license.html).\n\nYou can read all the documentation at [humu.github.io/heapprof](https://humu.github.io/heapprof).\n\n## Navigating the Repository\n\nIf you're trying to find something in the GitHub repository, here's a brief directory (since, like\nmost Python packages, this is a maze of twisty subdirectories, all different):\n\n* `heapprof` contains the Python package itself. (The API and visualization logic)\n* `_heapprof` contains the C/C++ package. (The core profiling logic)\n* `docs_src` contains the sources for the documentation, mostly as `.md` and `.rst` files.\n* `docs` contains the compiled HTML version of `docs_src`, created with `tools/docs.py` and checked\n in.\n* `tools` contains tools useful when modifying heapprof itself.\n* And then there are the configuration files for all the tools:\n * `setup.py` is the master build configuration for the PIP package.\n * `.flake8` and `.pylintrc` are the configuration for Python linting.\n * `CPPLINT.cfg` is the configuration for C/C++ linting.\n * `mypy.ini` is the configuration for Python type checking.\n * `Gemfile` is for setting up Jekyll for documentation hosting.\n * `_config.yml` is the configuration for Jekyll serving.\n * `docs/Makefile` and `docs/conf.py` are the configuration for building the HTML docs image via\n Sphinx.\n * `.circleci` is the configuration for continuous integration testing.\n * `pyproject.toml` and the root `requirements.txt` make `setuptools` happy.\n* Additional directories which are .gitignored but which show up during use:\n * `build` contains C/C++ dependencies and their compiled images; it's managed by `setup.py`.\n * `_site` contains the final Jekyll site which is served for documentation; it's created if you\n run `bundle exec jekyll serve` to run the docs web server locally.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "development profiling memory", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "heapprof", "package_url": "https://pypi.org/project/heapprof/", "platform": "", "project_url": "https://pypi.org/project/heapprof/", "project_urls": { "Documentation": "https://humu.github.io/heapprof", "Source": "https://github.com/humu/heapprof", "Tracker": "https://github.com/humu/heapprof/issues" }, "release_url": "https://pypi.org/project/heapprof/1.0.1/", "requires_dist": null, "requires_python": ">=3.7", "summary": "Logging heap profiler", "version": "1.0.1" }, "last_serial": 5710637, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "37fb3140af2a8fc8e205ca704906bd5f", "sha256": "51df24417bd0f4df19cccac7716738f899d0466d3c79a70b6a40bbe42fa65d29" }, "downloads": -1, "filename": "heapprof-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "37fb3140af2a8fc8e205ca704906bd5f", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.7", "size": 59077, "upload_time": "2019-08-13T22:10:28", "url": "https://files.pythonhosted.org/packages/1c/4c/d1417820627d7d521020d55a45181e62c815e96030b0e04919fb9d0f3e6a/heapprof-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "465bde2582ad491f0a096629d36c5dd6", "sha256": "b69cb64aa7c81a9001a3311dc9e36aca5e72d29c08d4bcfb25b8369cf41bfcd5" }, "downloads": -1, "filename": "heapprof-1.0.0.tar.gz", "has_sig": false, "md5_digest": "465bde2582ad491f0a096629d36c5dd6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 40541, "upload_time": "2019-08-13T22:10:30", "url": "https://files.pythonhosted.org/packages/ce/08/df609dcc27d62017bb1485fdb345c7bdb401601a745c5c41627cf772abc9/heapprof-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "414ffb442f074a605402983ca005bc95", "sha256": "17e1a3047fb9a971d011cb08f54bee0f5b8119e663456fb8a56a7b0d389a4b5b" }, "downloads": -1, "filename": "heapprof-1.0.1-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "414ffb442f074a605402983ca005bc95", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.7", "size": 60069, "upload_time": "2019-08-21T16:24:18", "url": "https://files.pythonhosted.org/packages/9c/6f/612222c2bb96045b1009146761807a97f021bb396a30d54d73577b5bd5cb/heapprof-1.0.1-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "aac3ed54c573e4d2d33e0c5f324a9b97", "sha256": "fa32768713c5f8624cf1b464c236b9a340f1a379f99f753c3980c6579c74ce6c" }, "downloads": -1, "filename": "heapprof-1.0.1-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "aac3ed54c573e4d2d33e0c5f324a9b97", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.7", "size": 61747, "upload_time": "2019-08-21T16:24:20", "url": "https://files.pythonhosted.org/packages/8b/56/a9220de8b2bb1f7f8a6de5891fb198bbbc05c2c41bbea9733713a41426ed/heapprof-1.0.1-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "61bce12fc4d0941d30e875d3f8a6dd2b", "sha256": "60e743adfda32cb1cb915009ac26cf74cb0135847cf52e8e67af9c28978b8e53" }, "downloads": -1, "filename": "heapprof-1.0.1.tar.gz", "has_sig": false, "md5_digest": "61bce12fc4d0941d30e875d3f8a6dd2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 49409, "upload_time": "2019-08-21T16:24:21", "url": "https://files.pythonhosted.org/packages/43/7f/6ba7e5ea970175cab3556498d9a1e1edcf622ad8a972b9f47add0d817a99/heapprof-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "414ffb442f074a605402983ca005bc95", "sha256": "17e1a3047fb9a971d011cb08f54bee0f5b8119e663456fb8a56a7b0d389a4b5b" }, "downloads": -1, "filename": "heapprof-1.0.1-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "414ffb442f074a605402983ca005bc95", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.7", "size": 60069, "upload_time": "2019-08-21T16:24:18", "url": "https://files.pythonhosted.org/packages/9c/6f/612222c2bb96045b1009146761807a97f021bb396a30d54d73577b5bd5cb/heapprof-1.0.1-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "aac3ed54c573e4d2d33e0c5f324a9b97", "sha256": "fa32768713c5f8624cf1b464c236b9a340f1a379f99f753c3980c6579c74ce6c" }, "downloads": -1, "filename": "heapprof-1.0.1-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "aac3ed54c573e4d2d33e0c5f324a9b97", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.7", "size": 61747, "upload_time": "2019-08-21T16:24:20", "url": "https://files.pythonhosted.org/packages/8b/56/a9220de8b2bb1f7f8a6de5891fb198bbbc05c2c41bbea9733713a41426ed/heapprof-1.0.1-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "61bce12fc4d0941d30e875d3f8a6dd2b", "sha256": "60e743adfda32cb1cb915009ac26cf74cb0135847cf52e8e67af9c28978b8e53" }, "downloads": -1, "filename": "heapprof-1.0.1.tar.gz", "has_sig": false, "md5_digest": "61bce12fc4d0941d30e875d3f8a6dd2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 49409, "upload_time": "2019-08-21T16:24:21", "url": "https://files.pythonhosted.org/packages/43/7f/6ba7e5ea970175cab3556498d9a1e1edcf622ad8a972b9f47add0d817a99/heapprof-1.0.1.tar.gz" } ] }