.. _examples_tegrastats: Example: tegrastats.py ====================== .. code-block:: python # Copyright (c) 2024 Justin Davis (davisjustin302@gmail.com) # # MIT License """Showcase of basic usage of Tegrastats and parsing output.""" from __future__ import annotations import time from pathlib import Path from jetsontools import Tegrastats, get_energy, parse_tegrastats def main() -> None: """Showcase basic usage of Tegrastats.""" example_path = Path(__file__).parent / "output.txt" interval = 5 # sample every 5 ms duration = 5 # 5 seconds of sampling t0 = time.time() with Tegrastats(example_path, interval): time.sleep(duration) t1 = time.time() total = t1 - t0 print(f"Execution took: {round(total, 3)} for 5 seconds measured.") print("This is due to waiting for tegrastats process to open.") # should be roughly 1000 / interval * duration entries with example_path.open("r") as f: lines = f.readlines() print( f"Total of: {len(lines)} entries found, compared to {1000 / interval * duration}.", ) print("Loss is expected.") # parse the output output = parse_tegrastats(example_path) # parse the energy energy_data = get_energy(output) for mname, metric in energy_data.items(): print(f"{mname}: {metric.mean} mW") if __name__ == "__main__": main()