profiling

This commit is contained in:
Keith Edmunds 2022-03-06 12:05:12 +00:00
parent a882d409cb
commit 2b02c1b5b4
5 changed files with 3948 additions and 1 deletions

114
poetry.lock generated
View File

@ -89,6 +89,14 @@ category = "dev"
optional = false
python-versions = "*"
[[package]]
name = "gprof2dot"
version = "2021.2.21"
description = "Generate a dot graph from the output of several profilers."
category = "dev"
optional = false
python-versions = "*"
[[package]]
name = "greenlet"
version = "1.1.2"
@ -171,6 +179,22 @@ parso = ">=0.8.0,<0.9.0"
qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"]
[[package]]
name = "line-profiler"
version = "3.4.0"
description = "Line-by-line profiler."
category = "dev"
optional = false
python-versions = "*"
[package.dependencies]
IPython = {version = ">=0.13", markers = "python_version >= \"3.7\""}
[package.extras]
all = ["cython", "scikit-build", "cmake", "ninja", "pytest (>=4.6.11)", "pytest-cov (>=2.10.1)", "coverage[toml] (>=5.3)", "ubelt (>=0.8.7)", "IPython (>=0.13,<7.17.0)", "IPython (>=0.13)"]
build = ["cython", "scikit-build", "cmake", "ninja"]
tests = ["pytest (>=4.6.11)", "pytest-cov (>=2.10.1)", "coverage[toml] (>=5.3)", "ubelt (>=0.8.7)"]
[[package]]
name = "mako"
version = "1.1.6"
@ -457,6 +481,34 @@ tomli = ">=1.0.0"
[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
[[package]]
name = "pytest-line-profiler"
version = "0.1.0"
description = "Profile code executed by pytest"
category = "dev"
optional = false
python-versions = ">=3.6"
[package.dependencies]
line-profiler = "*"
pytest = ">=3.5.0"
[[package]]
name = "pytest-profiling"
version = "1.7.0"
description = "Profiling plugin for py.test"
category = "dev"
optional = false
python-versions = "*"
[package.dependencies]
gprof2dot = "*"
pytest = "*"
six = "*"
[package.extras]
tests = ["pytest-virtualenv"]
[[package]]
name = "pytest-qt"
version = "4.0.2"
@ -605,7 +657,7 @@ python-versions = "*"
[metadata]
lock-version = "1.1"
python-versions = "^3.9"
content-hash = "c9f7a8c9a15812c1f3affeaa301fe6e6310388cca41a229bdb97fdd58c765e6f"
content-hash = "edc1d6c0a7e90c928000bdd53f541b88bea17a8c44eb86bcb29936c6520a694a"
[metadata.files]
alembic = [
@ -644,6 +696,9 @@ executing = [
{file = "executing-0.8.3-py2.py3-none-any.whl", hash = "sha256:d1eef132db1b83649a3905ca6dd8897f71ac6f8cac79a7e58a1a09cf137546c9"},
{file = "executing-0.8.3.tar.gz", hash = "sha256:c6554e21c6b060590a6d3be4b82fb78f8f0194d809de5ea7df1c093763311501"},
]
gprof2dot = [
{file = "gprof2dot-2021.2.21.tar.gz", hash = "sha256:1223189383b53dcc8ecfd45787ac48c0ed7b4dbc16ee8b88695d053eea1acabf"},
]
greenlet = [
{file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"},
{file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"},
@ -716,6 +771,54 @@ jedi = [
{file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"},
{file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"},
]
line-profiler = [
{file = "line_profiler-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6795393d5365ae039296275fbdf224d32353fa9b5fbc9924c020119896a1b5f1"},
{file = "line_profiler-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73994cc599870df7efde004f445d81826cbcedffb14d3d82642c6ea13495f6e"},
{file = "line_profiler-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0bc64d2affea5c11d6143024c8c1a7b9da9c9b7769669efb80effc1dd4feb3fb"},
{file = "line_profiler-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b4c3e6d899f372c514b0321416241fe79e6ae4301f5e78a18cf2a3680c874e9"},
{file = "line_profiler-3.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8e94ff5c6be71e65c201dd51b3fc6b22ff0a8331dca7ee5ff7e2776a772b86d9"},
{file = "line_profiler-3.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5e6306903d3750e7740620fa92151d129bb3c081ab1f8776b2e4263f9f715864"},
{file = "line_profiler-3.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ff0f2a42920545358b04ea466b8725dc0dec6ed6d0b5c1054219666416937b81"},
{file = "line_profiler-3.4.0-cp310-cp310-win32.whl", hash = "sha256:fa67fb3c5e0e914dfb310106562e2162840bef2970f44271fa67aae94ef46bfd"},
{file = "line_profiler-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:c882542947dd271c663aa16ccc800808f6f071e4fd478731ddea4424f6a5cc00"},
{file = "line_profiler-3.4.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b8d66cc1f3e70dad49ecf98915139d505c2d9f4f1cb2775b7fb83d6603763d1a"},
{file = "line_profiler-3.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a0424d6606176e6272469cc1ee0b08cabc0f5286d0231d381762a1167125c7e"},
{file = "line_profiler-3.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29a708bb392b83a1f8782a5b6c3bc8985fd5241e34e30853ecf9234d0404ad95"},
{file = "line_profiler-3.4.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9941d224ec9c9787528240999b666a7f454d7383100515c8508a86bbf2147b18"},
{file = "line_profiler-3.4.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:1e09fa5d19d1f46815422f1c0fbfe4a2ed7cbdcbef6123d84de342e3606a3266"},
{file = "line_profiler-3.4.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:78f5310f32c1311ddcf4007f473cd0366b19fca988174ff28ef713447665ccc5"},
{file = "line_profiler-3.4.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:31356727045d9f38ffde7c29e521bb85fb9c0e14ee0090bfd24dc952a0a23981"},
{file = "line_profiler-3.4.0-cp36-cp36m-win32.whl", hash = "sha256:9c87a9f07e00ee4a71cf0ae69f63eaf55416a0f756cab9c7a621fa8c4eb850f7"},
{file = "line_profiler-3.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:fb04fbd0038869054869dd9a3eb00f23377908228477530227a3b706a4a98b68"},
{file = "line_profiler-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:135e5c2014b1ca6c60d444bf9867d11feb09525b90920f9fc0e451fbc2559b8b"},
{file = "line_profiler-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08b14602b493907ed3586b5e93b69aeb96c7fe78caabb7eb6e9ff1ff7b22aae7"},
{file = "line_profiler-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c9e7bb3ee8914adbd4da8ceb6260aed2b91a15d285205d10dd2f6c313452e7"},
{file = "line_profiler-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fbc2a321efa77d512a47de1a8b2ee41960b4a035ba5f2cfab206f82bd6f0317"},
{file = "line_profiler-3.4.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c893718b0b7678d593f1ccab31c2bcfa638a5368d7e9e2ebafb060d70a10f695"},
{file = "line_profiler-3.4.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:207d9992eb0afece6cdf58af9fabc8936e7738a55537866990a7bf680a7de6fb"},
{file = "line_profiler-3.4.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2ec3d25a02d9b4be09c36f23934ff054a0df1a45eb6503e3945a487eb316ee70"},
{file = "line_profiler-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:d70994abc5de3ec500a56b9c652c51510a5cbb7f6c78bf7990ce7b94cc0ba916"},
{file = "line_profiler-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:6cdc9f0bff33221b8145a13d421e8e70a898d86cc45bdd39c83e38ac7f5658cb"},
{file = "line_profiler-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3f5223a271025e598e1d3857ec3c6a34f6160c9e7496e7a635bcb336c646f79f"},
{file = "line_profiler-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9767eca7e7bf2e18fd41135a7e801fe3a9396b9d58480de18449cf9a9005269"},
{file = "line_profiler-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8660d2d75a454eeb876dd94caad7c9e8db11970a4678386cab8bc64d8ef65f1"},
{file = "line_profiler-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3496bbcaeb1223fc3b77b9facfb1229f2018367a1993d8fdb486d1c41418b22a"},
{file = "line_profiler-3.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:703c85e8237b6336d0f762fd895c919b5a0db0fd89be2e450d4d8875b3881b27"},
{file = "line_profiler-3.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6aabd9e4c1859083219005f941e6bbadd71cdb48645d3dd548719092ec192705"},
{file = "line_profiler-3.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:db63d5e959320dd0ad7f03146b32ec7c6d07fead0335c9dd82033231cf67b6a1"},
{file = "line_profiler-3.4.0-cp38-cp38-win32.whl", hash = "sha256:a5e56481cdf9f3a65bf39ec9ddc22b39ac19cd167964944d3aacbd037882b4b6"},
{file = "line_profiler-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c526f7002993b3e70e6d164862250099b764a36f5e8eedd59b3eb38504edb8b0"},
{file = "line_profiler-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e767c41c0447a31e58976e8721346897aa61bc9b102a80a221619e2b3f6c8a47"},
{file = "line_profiler-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02eea377d5483eb85bc2271118f2d9c8744d210798be92e38c10ce3484373fdc"},
{file = "line_profiler-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6db3e7c306027f6baeda72ad91b7f85947bc3e41c4e6406138a4ca81d994a510"},
{file = "line_profiler-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a695403a08365eecffe3abdb9f140f2f73c77a6801208c8ebdc0d0357d306415"},
{file = "line_profiler-3.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a539f4aff8338fb36ed21f8bb0910d9c1c2a42f68bf1bf41f23c9dc68db90e87"},
{file = "line_profiler-3.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:62e07f3cd5ec6690eb6ec339861317f3063e6927679ff3c7478e153f2438e410"},
{file = "line_profiler-3.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:483673e337505ab6abdd68fa575439c7f29154d36d2a535a482a3c020055399e"},
{file = "line_profiler-3.4.0-cp39-cp39-win32.whl", hash = "sha256:364689e6eb106905a24559d1372d093dbc7b62e3bb8e9ffbcbd65fb34da3f064"},
{file = "line_profiler-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:6a946a3a246bb86504965863a211aef34108fe4e11955fa78128ceaacb83ff22"},
{file = "line_profiler-3.4.0.tar.gz", hash = "sha256:b6b0a8100a2829358e31ef7c6f427b1dcf2b1d8e5d38b55b219719ecf758aee5"},
]
mako = [
{file = "Mako-1.1.6-py2.py3-none-any.whl", hash = "sha256:afaf8e515d075b22fad7d7b8b30e4a1c90624ff2f3733a06ec125f5a5f043a57"},
{file = "Mako-1.1.6.tar.gz", hash = "sha256:4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2"},
@ -942,6 +1045,15 @@ pytest = [
{file = "pytest-7.0.1-py3-none-any.whl", hash = "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db"},
{file = "pytest-7.0.1.tar.gz", hash = "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171"},
]
pytest-line-profiler = [
{file = "pytest_line_profiler-0.1.0-py3-none-any.whl", hash = "sha256:7f8600713c3e2d895022f274c4c8ad3851c6b10ba25363c73fccb195334a05ef"},
]
pytest-profiling = [
{file = "pytest-profiling-1.7.0.tar.gz", hash = "sha256:93938f147662225d2b8bd5af89587b979652426a8a6ffd7e73ec4a23e24b7f29"},
{file = "pytest_profiling-1.7.0-py2.7.egg", hash = "sha256:3b255f9db36cb2dd7536a8e7e294c612c0be7f7850a7d30754878e4315d56600"},
{file = "pytest_profiling-1.7.0-py2.py3-none-any.whl", hash = "sha256:999cc9ac94f2e528e3f5d43465da277429984a1c237ae9818f8cfd0b06acb019"},
{file = "pytest_profiling-1.7.0-py3.6.egg", hash = "sha256:6bce4e2edc04409d2f3158c16750fab8074f62d404cc38eeb075dff7fcbb996c"},
]
pytest-qt = [
{file = "pytest-qt-4.0.2.tar.gz", hash = "sha256:dfc5240dec7eb43b76bcb5f9a87eecae6ef83592af49f3af5f1d5d093acaa93e"},
{file = "pytest_qt-4.0.2-py2.py3-none-any.whl", hash = "sha256:e03847ac02a890ccaac0fde1748855b9dce425aceba62005c6cfced6cf7d5456"},

BIN
prof/combined.prof Normal file

Binary file not shown.

3833
prof/combined.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

View File

@ -25,6 +25,8 @@ pytest-qt = "^4.0.2"
sqlalchemy-stubs = "^0.4"
PyQt5-stubs = "^5.15.2"
mypy = "^0.931"
pytest-profiling = "^1.7.0"
pytest-line-profiler = "^0.1.0"
[build-system]
requires = ["poetry-core>=1.0.0"]