https://github.com/astrofrog/psrecord
Record the CPU and memory activity of a process :chart_with_upwards_trend:
https://github.com/astrofrog/psrecord
Last synced: 6 months ago
JSON representation
Record the CPU and memory activity of a process :chart_with_upwards_trend:
- Host: GitHub
- URL: https://github.com/astrofrog/psrecord
- Owner: astrofrog
- License: bsd-2-clause
- Created: 2013-12-05T16:09:18.000Z (almost 12 years ago)
- Default Branch: main
- Last Pushed: 2025-05-05T17:31:44.000Z (6 months ago)
- Last Synced: 2025-05-12T17:23:13.267Z (6 months ago)
- Language: Python
- Homepage:
- Size: 133 KB
- Stars: 620
- Watchers: 12
- Forks: 79
- Open Issues: 39
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
|Coverage Status|
About
=====
``psrecord`` is a small utility that uses the
`psutil `__ library to record the CPU
and memory activity of a process. The package is still under development
and is therefore experimental.
The code is released under a Simplified BSD License, which is given in
the ``LICENSE`` file.
Requirements
============
- Python 2.7 or 3.3 and higher
- `psutil `__ 1.0 or later
- `matplotlib `__ (optional, used for
plotting)
Installation
============
To install, simply do::
pip install psrecord
To install with the optional plotting dependencies, do::
pip install psrecord[plot]
Usage
=====
Basics
------
To record the CPU and memory activity of an existing process to a file (use sudo for a root process):
::
psrecord 1330 --log activity.txt
where ``1330`` is an example of a process ID which you can find with
``ps`` or ``top``. You can also use ``psrecord`` to start up a process
by specifying the command in quotes:
::
psrecord "hyperion model.rtin model.rtout" --log activity.txt
Plotting
--------
To make a plot of the activity:
::
psrecord 1330 --plot plot.png
This will produce a plot such as:
.. image:: https://github.com/astrofrog/psrecord/raw/master/screenshot.png
You can combine these options to write the activity to a file and make a
plot at the same time:
::
psrecord 1330 --log activity.txt --plot plot.png
Duration and intervals
----------------------
By default, the monitoring will continue until the process is stopped.
You can also specify a maximum duration in seconds:
::
psrecord 1330 --log activity.txt --duration 10
Finally, the process is polled as often as possible by default, but it
is possible to set the time between samples in seconds:
::
psrecord 1330 --log activity.txt --interval 2
Subprocesses
------------
To include sub-processes in the CPU and memory stats, use:
::
psrecord 1330 --log activity.txt --include-children
Running tests
=============
To run tests, you will need `pytest `_. You can install it with::
pip install pytest
You can then run the tests with::
pytest psrecord
Reporting issues
================
Please report any issues in the `issue
tracker `__.
.. |Coverage Status| image:: https://codecov.io/gh/astrofrog/psrecord/branch/master/graph/badge.svg
:target: https://codecov.io/gh/astrofrog/psrecord