{
"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"
}
]
}