Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pyinferno

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pyinferno

Simple python flame graph generator

  • 0.2.6
  • PyPI
  • Socket score

Maintainers
1

PyInferno

Python package that renders pyinstrument profiles as flamegraphs, using the inferno rust crate.

Example command line usage Example output

Installation

Install from PyPi:

pip install pyinferno

Usage

Context manager

To profile a specific piece of code, you can use the pyinstrument Profiler class, then render the result using pyinferno's InfernoRenderer:

from pyinstrument.profiler import Profiler
from pyinferno import InfernoRenderer
import time

def slow():
    time.sleep(0.5)

with Profiler() as profiler:
    slow()

output = profiler.output(InfernoRenderer(title="slow"))

with open("flamegraph.svg", "w+") as f:
    f.write(output)

For convenience, the same result can be achieved using the InfernoProfiler context manager:

from pyinferno import InfernoProfiler
import time

def slow():
    time.sleep(0.5)

with InfernoProfiler(file="flamegraph.svg", auto_open=True, title="slow"):
    slow()

Command-line

To profile a Python script, you can pass pyinferno.Renderer as the renderer to the pyinstrument CLI:

pyinstrument -r pyinferno.Renderer -o flamegraph.svg slow.py

For convenience, pyinferno includes its own script which wraps the pyinstrument CLI:

pyinferno slow.py

If no output file is specified, the flamegraph will be written to a temporary file and automatically opened using python's webbrowser module. To save the flamegraph to a file, pass the -o option:

pyinferno -o flamegraph.svg slow.py

To profile a python module, pass the -m argument:

pyinferno -m pytest -k slow_test

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc