Мне нужно отправить много запросов на отправку по почте (несколько тысяч) и прочитать ответы параллельно. Я использую httplib в python, мне требуется в среднем 0,5 мс для отправки запроса, и довольно медленно читать ответ. Я использую сопрограммы (gevent) вместо потоков, чтобы сделать это быстрее. Я думал о следующем, чтобы сделать это быстрее:Быстрые HTTP-запросы в Python
- записи C код (я должен был бы найти хорошую библиотеку HTTP в C), и писать с-расширением
- использование Cython
Какой подход обеспечит быстрый код? Любое совместное использование опыта с одним или другим подходом было бы также высоко оценено. Любая другая идея очень приветствуется.
Вы измеряли, где проводится большая часть времени? Если значительное время тратится на создание сетевого подключения к серверу, я не думаю, что вы получите намного быстрее с помощью программы на C. Также 0,5 мс тихо, или вы имели в виду 0,5 с? – Bernhard
Нет, это просто отправка сообщения, за исключением создания соединения, и исключение времени для подключения (трехстороннее квитирование). Большую часть времени, затраченную на отправку данных (connection.send, где соединение является httplib.HTTPConnection) – DevShark
И что является узким местом для передачи данных? Моя (необразованная) догадка заключается в том, что медленная вещь - это задержка в работе сети или ОС, и она не будет намного быстрее с оптимизацией кода на стороне клиента. – dhke