Python asyncore vs普通老C

时间:2010-01-07 17:25:39

标签: python proxy smtp asyncore smtpd

我正在测试2个不同的项目:一个是proxsmtpd - 用C语言编写的smtp代理 另一个是smtp_proxy.py,我用1小时开发,使用asyncore和smtpd python模块。

我强调了两个重载项目, 并发现proxsmtpd能够容纳400个smtp会话/秒, 而我的python程序,每秒只能执行160次smtp会话。

所以,我的问题是,是否因为asyncore存在一些性能限制, 或C程序只是更快?或者也许是我,以低效的方式使用asyncore?

1 个答案:

答案 0 :(得分:2)

我认为这是一个公平的假设,假设良好的 C版本和良好的 Python版本,C版本将更快,更具可扩展性,但在您的情况下,您可能想要运行一个分析器,看看你的程序没有和C版本一样扩展的原因和位置。也许您可以发现紧密的点并对其进行优化,以便从代码中挤出更多性能。另外,我对asyncore知之甚少,但是当人们想要做异步的东西时,人们似乎倾向于使用第一个Python库。所以,也许那里有性能提升。