1. c-Profile
pip install line-profiler
2. Use line profile in jupyter notebook
%load_ext line_profiler
3. Run the code to get timing
%lprun -f function_name function_name(value)
%lprun %Time -f function_name function_name(value) #Gte time at each line
%lprun %Time -T timings.text -f function_name function_name(value) #save data in text fil