Skip to main content

A library to measure your method, function execution time.

Project description

PY Profiler

A library to measure method, function or your restful api execution time.

Install

  • Run pip install py-profiler or pip3 install py-profiler to install this library

Usage

It comes with a really easy api to use, you can add profiler(name = None) decorator to any method or function you want to measure its execution time.

E.g:

from py_profiler import profiler, profiling_service


@profiler('hello')
def hello():
    print('hello')


class Foo:

    @profiler('Food.some_thing')
    def some_thing(self):
        print('some_thing')

    # By default, profiler name is f'{class_name}.{method_name}'
    @profiler()
    def method_2(self):
        print('method_2')

Access Profiler

There are 3 ways to access the profiler:

- View as a raw table in the console.

- View as a HTML page using a provided Flask blueprint.

- Integrate with your own RESTFul framework.
  • Exec time is in milliseconds
  1. View as a table
from py_profiler import profiling_service

print(profiling_service.as_table())
No Name Total Req Pending Req Total Exec Time Last Exec Time Highest Exec Time Request Rate (req/sec) Avg Time/Request (millis/req)
1 Foo.method_2 1 0 0.014 0.014 0.014 71428.571 0.014
2 Food.some_thing 1 0 0.011 0.011 0.011 90909.091 0.011
3 hello 1 0 0.031 0.031 0.031 32258.065 0.031
  1. Integrate with FastAPI
  • If you are using FastAPI to implement your Restful API. You can add profiler_router to your FastAPI app.

E.g:

from fastapi import FastAPI
from py_profiler.fastapi_profiler_controller import profiler_router

app = FastAPI()
app.include_router(profiler_router)

Then you can access the profiler page at: http://127.0.0.1:8080/profiler Py Profiler Page

  1. Integrate with Flask
  • If you are using Flask to implement your Restful API. You can add profiler_blueprint to your Flash app.

E.g:

from flask import Flask
from waitress import serve
from py_profiler.profiler_controller import profiler_blueprint

app = Flask(__name__)
app.register_blueprint(profiler_blueprint)

serve(
    app,
    host="0.0.0.0",
    port=8080
)

Then you can access the profiler page at: http://127.0.0.1:8080/profiler Py Profiler Page

  1. Integrate with 3rd restful library.

You can build your custom profiler viewer by using as_html()

from py_profiler import profiling_service

html_page = profiling_service.as_html()

Then, you can implement a html page and return this html_page to your client to see profiler viewer.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_profiler-0.2.8.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

py_profiler-0.2.8-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file py_profiler-0.2.8.tar.gz.

File metadata

  • Download URL: py_profiler-0.2.8.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.9

File hashes

Hashes for py_profiler-0.2.8.tar.gz
Algorithm Hash digest
SHA256 3537789e1101c032b177256de0bba0382277cc40eb36e53800cfd0f17b9c8684
MD5 afea9801f6becbfc19db7bbf1f3bebd9
BLAKE2b-256 991ade1bd771ba658267a8c336d94823cdd06d690da8d0e0ec4d84fd8170e0bd

See more details on using hashes here.

File details

Details for the file py_profiler-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: py_profiler-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.9

File hashes

Hashes for py_profiler-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0e83b06454dc24b393d081d78f7d880843191da414a03b36bbea0b2945fd5583
MD5 e8558f9283d39291620fd9df26dae7c4
BLAKE2b-256 2825a03e433de5c6583acadbb1f10581d826b6c8213b214de5813a4d059bb572

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page