2

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

我在重负载下强调了这两个项目,并发现 proxsmtpd 能够保持 400 个 smtp 会话/秒,而我的 python 程序只能执行 160 个 smtp 会话/秒。

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

4

1 回答 1

2

我认为这是一个公平的假设,即给定一个好的C 版本和一个好的Python 版本,C 版本将更快、更具可扩展性,但在你的情况下,你可能想要运行一个分析器,看看你的程序为什么以及在哪里没有扩展和 C 版本一样多。也许您可以发现这些漏洞并对其进行优化,以从您的代码中挤出更多的性能。另外,我对 asyncore 了解不多,但是当人们想要做异步的东西时,他们似乎倾向于第一个 Python 库。所以,也许那里有性能改进。

于 2010-01-07T17:35:29.693 回答