#python #xml #soap
Вопрос:
У меня есть требование использовать веб-сервис на основе SOAP с Python. Рассмотрев пару вариантов; SUDS и Zeep, они оба работают, но оба слишком медленные для использования в производстве (SUDS занимает около 15 секунд, а Zeep-шесть секунд).
Я понимаю, что синтаксический анализ XML-это то, что замедляет и то, и другое.
Существуют ли более быстрые библиотеки, или лучше попробовать написать что-то с нуля?
Комментарии:
1. Вы провели некоторое профилирование, чтобы проанализировать производительность приложения, и обнаружили, что проблема заключается в анализе, или вы предполагаете? Если возвращаемый вами XML-файл не очень велик, его анализ не должен занимать 15 секунд, независимо от того, какую библиотеку вы используете.
2. cProfile говорит, что все работает нормально. 647 вызовов функций (641 примитивный вызов) за 0,001 секунды (вывод слишком длинный для комментария). cProfile.run(‘re.compile(«результат = клиент.служба. GetWhereAmIAttributes(«XXX»,E,N)»)’) Но запуск строки ниже занимает gt;10 секунд. результат = клиент.услуга. GetWhereAmIAttributes(‘ConCase’,E,N), Поэтому либо cProfile неверно сообщает, либо что-то в результатах (и это небольшое количество возвращаемых данных) загружается в результирующий var.