This is a tiny python package which provides you with a decorator to measure execution time (in ms) of functions.
You should be able to install using pip in the usual ways:
$ pip install Execution-TimeOr just clone this repository and run:
$ python3 setup.py installOr place the execution_time folder that you downloaded somewhere where it can be accessed by your scripts.
Import the class ExecutionTime, instantiate it and @obj.timeit decorater becomes available.
from execution_time import ExecutionTime
e = ExecutionTime()
@e.timeit
def foo(arg1):
do_something(arg1)
return
@e.timeit
def bar():
hello_world()
return
foo("dragons")
bar()
bar()
bar()
print(e.logtime_data)
## {'foo': {'times_called': 1, 'total_time': 0.0745, 'average_time': 0.0745}, 'bar': {'times_called': 3, 'total_time': 0.2054, 'average_time': 0.0685}}logtime_data is a dictionary which contains the data in methodname:time took in ms format.
- Auto-Decorate all functions in a script.
This is a shortcut if you want to auto-deocreate all function. To do so, pass the __name__ attribute to the class instantiation as:
from execution_time import ExecutionTime
def foo():
do_something()
return
def bar():
hi()
e = ExecutionTime(module_name=__name__)
foo()
bar()
print(e.logdata_time)Note: The class instantiation must be done after functions have been defined and before they are called. This does limit where this feature can be used and the decorator approach is recommeneded in those scenarios.
- Provide console logs.
e = ExecutionTime(console=True)Output the log time in console as: 2019-07-06 22:07:55,157 [INFO ] Time take by method : foo is 0.12000000000012001 ms
You can report the bugs at the issue tracker
Built with ♥ by Siddhant Chhabra(@siddhant-curious) under MIT License
You can find a copy of the License at https://github.com/siddhant-curious/Execution-Time/blob/master/LICENSE