{ "info": { "author": "Bryan O'Sullivan", "author_email": "bos@serpentine.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Topic :: Utilities" ], "description": "statprof - statistical profiling for Python\n===========================================\n\nThis package provides a simple statistical profiler for Python.\n\nPython's default profiler has been `lsprof` for several years. This is\nan *instrumenting* profiler, which means that it saves data on every\naction of interest. In the case of lsprof, it runs at function entry\nand exit. This has problems: it can be expensive due to frequent\nsampling, and it is blind to hot spots *within* a function.\n\nIn contrast, `statprof` samples the call stack periodically (by\ndefault, 1000 times per second), and it correctly tracks line numbers\n*inside* a function. This means that if you have a 50-line function\nthat contains two hot loops, `statprof` is likely to report them both\naccurately.\n\nNote: This package does not yet work on Windows! See the\nimplementation and portability notes below for details.\n\n\nBasic usage\n-----------\n\nIt's easy to get started with `statprof`:\n\n import statprof\n\n statprof.start()\n\ttry:\n\t my_questionable_function()\n finally:\n\t statprof.stop()\n\t\tstatprof.display()\n\nFor more comprehensive help, run `pydoc statprof`.\n\n\nPortability\n-----------\n\nBecause `statprof` uses the Unix `itimer` signal facility, it does not\ncurrently work on Windows. (Patches to improve portability would be\nmost welcome.)\n\n\nImplementation notes\n--------------------\n\nThe `statprof` profiler works by setting the Unix profiling signal\n`ITIMER_PROF` to go off after the interval you define in the call to\n`reset()`. When the signal fires, a sampling routine is run which\nlooks at the current procedure that's executing, and then crawls up\nthe stack, and for each frame encountered, increments that frame's\ncode object's sample count. Note that if a procedure is encountered\nmultiple times on a given stack, it is only counted once. After the\nsampling is complete, the profiler resets profiling timer to fire\nagain after the appropriate interval.\n\nMeanwhile, the profiler keeps track, via `os.times()`, how much CPU\ntime (system and user -- which is also what `ITIMER_PROF` tracks), has\nelapsed while code has been executing within a `start()`/`stop()`\nblock.\n\nThe profiler also tries (as much as possible) to avoid counting or\ntiming its own code.\n\n\nHistory\n-------\n\nThis package was originally\n[written and released by Andy Wingo](http://wingolog.org/archives/2005/10/28/profiling).\nIt was ported to modern Python by Alex Frazer, and posted to github by\nJeff Muizelaar. The current maintainer is Bryan O'Sullivan\n.\n\n\nReporting bugs, contributing patches\n------------------------------------\n\nThe current maintainer of this package is Bryan O'Sullivan\n.\n\nPlease report bugs using the\n[github issue tracker](https://github.com/bos/statprof.py/issues).\n\nIf you'd like to contribute patches, please do - the source is on\ngithub, so please just issue a pull request.\n\n $ git clone git://github.com/bos/statprof.py", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://packages.python.org/statprof", "keywords": "profiling", "license": "LGPL", "maintainer": null, "maintainer_email": null, "name": "statprof", "package_url": "https://pypi.org/project/statprof/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/statprof/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://packages.python.org/statprof" }, "release_url": "https://pypi.org/project/statprof/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Statistical profiling for Python", "version": "0.1.2" }, "last_serial": 800098, "releases": { "0.1": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "952811ec304a815ef44de9c8349f0bf2", "sha256": "274df5f3f643eef8b8d3ac6c319f8f534360ad14925df40cda1d83cd28f09e64" }, "downloads": -1, "filename": "statprof-0.1.1.tar.gz", "has_sig": false, "md5_digest": "952811ec304a815ef44de9c8349f0bf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5929, "upload_time": "2012-04-10T00:20:37", "url": "https://files.pythonhosted.org/packages/1e/22/eb77c6d2d30867fbeed07211acc0fbb18643ae9af7c4f2ce06d569ec6ec1/statprof-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "00598a2cac2f37eb7f83c04ed24a3b41", "sha256": "adb8654edd5183e91e1538ee9112314f8129a52796bfa32cfa34b2f0e73295b4" }, "downloads": -1, "filename": "statprof-0.1.2.tar.gz", "has_sig": false, "md5_digest": "00598a2cac2f37eb7f83c04ed24a3b41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6206, "upload_time": "2012-04-10T19:32:10", "url": "https://files.pythonhosted.org/packages/5b/00/8a05eb398e72f3aa5ec22a027bdffa51fd4f74296c7cb82f7b434d622296/statprof-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "00598a2cac2f37eb7f83c04ed24a3b41", "sha256": "adb8654edd5183e91e1538ee9112314f8129a52796bfa32cfa34b2f0e73295b4" }, "downloads": -1, "filename": "statprof-0.1.2.tar.gz", "has_sig": false, "md5_digest": "00598a2cac2f37eb7f83c04ed24a3b41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6206, "upload_time": "2012-04-10T19:32:10", "url": "https://files.pythonhosted.org/packages/5b/00/8a05eb398e72f3aa5ec22a027bdffa51fd4f74296c7cb82f7b434d622296/statprof-0.1.2.tar.gz" } ] }