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

  • 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 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 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.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

py_profiler-0.2.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_profiler-0.2.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.9

File hashes

Hashes for py_profiler-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0872d633231351ba031da2b405a16d1ad1bad871bc86f7b9ebef413f68dd87b4
MD5 b9291e79ff2a715b6fa85d8d8084abe2
BLAKE2b-256 486591248baf14e8258dc2029230a669f5250c59c758486e13204720d0d741da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: py_profiler-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.9

File hashes

Hashes for py_profiler-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d729570e840be0dd115c84b1bb789afac61bdcda4c8ffe446752681e38ec40f8
MD5 e1b753e8124e5b1b8e64a12720a86c58
BLAKE2b-256 09f3b7bf89a785173c033b60be13fa142e60579341b6f8182dccda6f81ef2d0e

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