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"
}
rss
is the used memory, in bytes.time
is the value fromtime.monotonic()
. You'll probably want to normalize this when analyzing.name
is 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
Hashes for pytest_memlog-0.1.0a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f66dfa142d67ea7357bdb44b1ff30bfe56d5966456f890ae6189052f4da772bd |
|
MD5 | d2cd30068aef08dbf00fe49014890ab7 |
|
BLAKE2b-256 | 24fff662dda26f2f6bfc7dd50d03a6abee02ae2ec028aa495e862ac7c637c0c9 |