Diagnose Slow Python Code
To diagnose the slow of python code you can use python profiling, that track all the executed method and the time for each one which allow you to find the real reason that causing the slow
Code example
import cProfile
import pstats
import requests
def main():
with cProfile.Profile() as pr:
# the method you want to profile and improve its performance
requests.get('https://google.com')
stats = pstats.Stats(pr)
stats.sort_stats(pstats.SortKey.TIME)
stats.print_stats()
# to store in file
# stats.dump_stats(filename='profiling.prof')
if __name__ == '__main__':
main()
output example
10764 function calls (10698 primitive calls) in 0.681 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
10 0.212 0.021 0.212 0.021 {method 'read' of '_ssl._SSLSocket' objects}
2 0.159 0.080 0.159 0.080 {method 'do_handshake' of '_ssl._SSLSocket' objects}
2 0.124 0.062 0.124 0.062 {method 'load_verify_locations' of '_ssl._SSLContext' objects}
2 0.102 0.051 0.102 0.051 {method 'connect' of '_socket.socket' objects}
2 0.025 0.012 0.025 0.013 {built-in method _socket.getaddrinfo}
70 0.012 0.000 0.012 0.000 {built-in method __new__ of type object at 0x5555fe0027e0}
2 0.002 0.001 0.002 0.001 {built-in method marshal.loads}
all you need just check the tottime
and know the reason
#HappyCoding