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