Производительность Сокета C/Python?

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

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

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

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

Заранее спасибо.

10
задан Kevin 15 December 2009 в 18:39
поделиться

2 ответа

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

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

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

12
ответ дан 3 December 2019 в 23:50
поделиться

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

разница будет настолько мала, что вам это не понадобится, если вы не попытаетесь для отправки большого количества данных (что-то глупое, например, 1 миллион гигабайт в секунду, смех)

Джо

1
ответ дан 3 December 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: