10

我的问题只是与 C 和 Python 中的套接字之间的性能差异有关。由于我的 Python 构建是 CPython,我认为它是相似的,但我很好奇是否有人真的有“真正的”基准,或者至少是基于证据的意见。

我的逻辑是这样的:

  • C套接字快得多?然后写一个C扩展。
  • 没有/几乎没有区别?继续用 Python 编写代码并弄清楚如何获得数据包级别控制(scapy?dpkt?)

我敢肯定,有人会出于背景或好奇心而想知道。我计划为自己构建一种代理(不适用于互联网浏览、匿名等),并将我想使用的应用程序绑定到特定端口。然后,该端口上的所有数据包将被排队,修改地址头,然后发送等等。

提前致谢。

4

2 回答 2

13

一般来说,Python 中的套接字执行得很好。例如,BitTorrent 跟踪服务器的参考实现是用 Python 编写的。

在进行网络操作时,网络的速度通常是限制因素。也就是说,C 和 Python 的套接字代码之间任何可能的微小速度差异都会被您正在进行某种网络的事实完全掩盖。

但是,您对要执行的操作的描述表明您要检查和修改单个 IP数据包。这超出了 Python 的标准网络库的能力,并且在任何情况下都是非常依赖于操作系统的操作。而不是问“哪个更快?” 你需要先问“这可能吗?”

于 2009-12-15T18:46:34.697 回答
1

我认为 C 会更快,但 python 会更容易管理和使用。

差异是如此之小,除非您尝试发送大量数据,否则您将不需要它(愚蠢的,例如 100 万 GB/秒,哈哈)

于 2009-12-15T18:45:02.017 回答