Python xmlrpc чрезвычайно медленный: одна секунда за звонок

Я построил сервер xml-rpc на Python, используя SimpleXMLRPCServer, в соответствии с примером в документации Python. Я называю это от клиента Python на той же машине. Тело серверной функции выполняется очень быстро самостоятельно.

Но я нахожу, что производительность клиента xmlrpc чрезвычайно мучительно медленная, и занимает одну секунду за звонок. (Использование xmlrpclib.)

Техника ускорения, которую я нашел в Интернете (пропуская разрешение getfqdn), не помогло.

Мой идентификатор соединения:

'http://localhost:50080'

Я запускаю Python 2.7 x64 в Windows 7, но он работает одинаково для 32-разрядного Python 2.7.

Ответ 1

Проблема заключалась в том, что клиент разрешал localhost.

Новый (быстрый) соединительный URI:

'http://127.0.0.1:50080'

Аналогично, добавление этой строки в файл хостов% SystemRoot%\System32\drivers\etc\hosts имеет, по сути, тот же эффект:

127.0.0.1 localhost

Любое из этих изменений увеличило скорость от 1 вызова/секунды до 88 вызовов в секунду, а пропущение разрешения getfqdn может ускорить его немного больше. Не очень высокая емкость, но приемлемая для моего приложения.

Коррекция: новая производительность не 88 вызовов/сек, а ~ 1000 вызовов/сек.