Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arnaudsm/bigot
Benchmarking library with Space and Time Complexity estimation
https://github.com/arnaudsm/bigot
benchmarking complexity-analysis python
Last synced: about 2 months ago
JSON representation
Benchmarking library with Space and Time Complexity estimation
- Host: GitHub
- URL: https://github.com/arnaudsm/bigot
- Owner: arnaudsm
- License: mit
- Created: 2020-09-23T22:36:32.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-01-26T18:56:27.000Z (almost 4 years ago)
- Last Synced: 2024-09-24T09:22:07.833Z (3 months ago)
- Topics: benchmarking, complexity-analysis, python
- Language: Python
- Homepage:
- Size: 238 KB
- Stars: 10
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
README
![Example complexity graph](https://raw.githubusercontent.com/arnaudsm/bigot/master/images/graph.png)
# 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
```python
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.
```python
bench = bigot.Time(
on2,
plot=True,
duration=1,
verbose=True,
name="My fancy function"
)
```### And check the number of iterations, useful when comparing functions
```python
print(bench.iterations, "iterations in", bench.duration, "seconds")
```
```
8 iterations in 8 seconds
```
### You can also compare multiple functions
```python
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 .`