Подтвердить что ты не робот

Производительность S/Python Socket?

мой вопрос просто связан с разницей в производительности между сокетом в C и Python. Поскольку моя сборка Python является CPython, я предполагаю, что она похожа, но мне любопытно, есть ли у кого-то действительно "реальные" тесты или, по крайней мере, мнение, основанное на доказательствах.

Мои логики таковы:

  • C сокет гораздо быстрее? затем напишите C расширение.
  • нет/едва ли разница? продолжайте писать на Python и выясните как получить контроль уровня пакетов (scapy? dpkt?)

Я уверен, что кто-то захочет узнать ни контекст, ни любопытство. Я планирую создать своего рода прокси-сервер для себя (не для интернет-просмотра, анонимности и т.д.) И привяжет приложение, которое я хочу использовать с ним, к определенному порту. Затем все пакеты на указанном порту будут поставлены в очередь, заголовок адреса изменен, а затем отправлен и т.д. И т.д.

Спасибо заранее.

4b9b3361

Ответ 1

В общем, сокеты в Python работают отлично. Например, эталонная реализация сервера трекера BitTorrent написана на Python.

При выполнении сетевых операций скорость сети обычно является ограничивающим фактором. То есть любая возможная крошечная разница в скорости между кодом сокета C и Python полностью омрачена тем фактом, что вы делаете какие-то сетевые сети.

Однако ваше описание того, что вы хотите сделать, указывает, что вы хотите проверить и изменить отдельные IP-пакеты. Это выходит за рамки возможностей стандартных сетевых библиотек Python и в любом случае является очень зависимой от ОС операцией. Вместо того, чтобы спрашивать "что быстрее?" вам нужно сначала спросить "возможно ли это?"

Ответ 2

Я бы подумал, что C будет быстрее, но python будет намного проще управлять и использовать.

разница была бы настолько мала, вам это не понадобилось бы, если бы вы не пытались отправить массу данных (что-то глупое, как 1 млн. gb/second lol)

Джо