Log memory usage during tests
Project description
pytest-memlog
Continuously logs the memory usage of your test session.
Installation
pip install pytest-memlog
Usage
Use --memlog to enable the plugin.
By default, memory usage of a test run will be logged to memlog.json.
Options
--memlog-path: The path to save the log to, defaults tomemlog.json.--memlog-interval: Measurement interval, defaults to 0.1 seconds.--memlog-warmup: Memlog will capture memory usage for this many seconds before starting your tests. Defaults to 0.
Markers
limit_memory(memory): Will mark a test as failed if the program memory exceeds this number during a test run. Note that due to garbage collection, this does not necessarily reflect memory usage in a specific test.
Implementation
pytest-memlog uses a separate process to track the memory of the test process. This allows for a very low overhead, as the only data passed between the processes are test names & the maximum memory usage during a test.
The memory logging is done at fixed intervals (given by --memlog-interval)
and saved to a JSON log.
Each log entry is of the following form:
{
"rss": 40939520,
"time": 1814626.921,
"name": "tests/test_basic.py::test_0"
}
rssis the used memory, in bytes.timeis the value fromtime.monotonic(). You'll probably want to normalize this when analyzing.nameis the name of the current running test, or an empty string between tests.
Analysis
The visualization at the top was generated using the data from our examples.
You can see how in the sample notebook or view it live.
To generate the log for the examples run:
pytest --memlog ./examples/
Or use it on your own tests!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytest_memlog-0.1.0a1.tar.gz.
File metadata
- Download URL: pytest_memlog-0.1.0a1.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40f835763a08d8edb9b1745fbc4cb09f012ab29217da89f6f83a74d348bfba10
|
|
| MD5 |
748cecccbe29621bca4191c6c2c3ee0e
|
|
| BLAKE2b-256 |
18048c2b72e9e1b22d875768f7de5178378ddc879e5c1d879fc147bbdaa5c2d6
|
File details
Details for the file pytest_memlog-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: pytest_memlog-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f66dfa142d67ea7357bdb44b1ff30bfe56d5966456f890ae6189052f4da772bd
|
|
| MD5 |
d2cd30068aef08dbf00fe49014890ab7
|
|
| BLAKE2b-256 |
24fff662dda26f2f6bfc7dd50d03a6abee02ae2ec028aa495e862ac7c637c0c9
|