I am having trouble with suds performance. I am using version 0.4 and
am sending a request using the service api. I'm not sure that I should
post the WSDL, as it is not public, but I could definitely post sample
requests and responses if helpful.
I've done some digging to try to figure out where all of the time is
being spent. So, for an example call that the service provider says
should take 10 - 20 seconds, the request takes 3-4 minutes. I've run
cProfile and see that most of the time is spent on parsing the xml.
Here's the output from pstats:
% sort time
% stats 10
Thu Nov 11 20:40:27 2010 ss_profile
188760610 function calls (173229448 primitive calls) in
727.425 CPU seconds
Ordered by: internal time
List reduced from 1530 to 10 due to restriction <10>
ncalls tottime percall cumtime percall filename:lineno(function)
17433501/11932426 155.135 0.000 343.951 0.000
suds/xsd/sxbase.py:579(next)
443640 90.804 0.000 324.615 0.001
suds/xsd/sxbase.py:121(children)
15987882 50.111 0.000 60.333 0.000 suds/xsd/sxbase.py:528(next)
17433501 46.838 0.000 61.628 0.000 suds/xsd/sxbase.py:567(top)
14657010 35.916 0.000 35.916 0.000 {isinstance}
38900366/29716796 31.571 0.000 130.412 0.000 {len}
3473347 21.630 0.000 33.102 0.000 suds/xsd/sxbase.py:547(push)
3014915 18.229 0.000 25.163 0.000
suds/sudsobject.py:134(__setattr__)
155131 17.586 0.000 305.249 0.002
suds/xsd/sxbase.py:148(get_child)
14864753 13.263 0.000 13.263 0.000 {method 'append' of
'list' objects}
Is it possible that the response is so large that it simply takes that
long to parse? Could anyone recommend anything else that I can check?
I'll also see if I can clean a version of the WSDL and code to share if
that would really help.
Thanks for any advice!
Branton
Show replies by date