Skip to main content

Benchmarking library with Space and Time Complexity estimation

Project description

Example complexity graph

Bigot

Benchmarking library with Space and Time Complexity estimation.
Pull requests are welcome !

Installation

pip install bigot

Usage

Provide a benchmark function with a single dimension parameter

def on(n):
    x = 10000000*"-"*int(n)
    sleep(0.001*n)

import bigot
print("Function has a space complexity of", bigot.Space(on2),
      "and a time complexity of", bigot.Time(on2))
Function has a space complexity of O(n^2) and a time complexity of O(n^2)

You can test our fancy options. See docstrings for reference.

bench = bigot.Time(
    on2,
    plot=True,
    duration=1,
    verbose=True,
    name="My fancy function"
)

And check the number of iterations, useful when comparing functions

print(bench.iterations, "iterations in", bench.duration, "seconds")
8 iterations in 8 seconds

You can also compare multiple functions

def on2(n):
    x = 10000000*"-"*int(n**2)
    sleep(0.001*n**2)

print(bigot.Compare([on, on2]).space())
  Name  Duration  Iterations Space complexity
0   On       1.0        49.0             O(n)
1  On2       1.0         8.0           O(n^2)

Testing

pytest .

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

bigot-1.0.2.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

bigot-1.0.2-py2.py3-none-any.whl (4.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bigot-1.0.2.tar.gz.

File metadata

  • Download URL: bigot-1.0.2.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for bigot-1.0.2.tar.gz
Algorithm Hash digest
SHA256 54c0bfd3668076e580810df10674c344211bfc671bd33ba464a453f9f1ac8d3f
MD5 460428380b06cd7c6044083107f09a33
BLAKE2b-256 c5f265d7e0b3fb890bb0157818d21591b59c0a78c86cfa855ef13ca5b59deea1

See more details on using hashes here.

File details

Details for the file bigot-1.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: bigot-1.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for bigot-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6c4bd03438468e23832d383a515aa6c92bb6bed1ef8b95fa5007df69a862f50c
MD5 8dd99e5db18b65b1a0777064a1bbc1bf
BLAKE2b-256 fd456e633a1f928e56a90bdbe8b41a9a04f7323b1510be553cf1844981da67e3

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