【发布时间】:2011-01-02 14:14:44
【问题描述】:
我正在对 2 个不同的项目进行压力测试:一个是 proxsmtpd - 用 C 编写的 smtp 代理 另一个是 smtp_proxy.py,我在 1 小时内开发的,使用了 asyncore 和 smtpd python 模块。
我强调了这两个项目都承受着沉重的负担, 并发现 proxsmtpd 能够保持 400 smtp 会话/秒, 而我的 python 程序,只能执行 160 个 smtp 会话/秒。
所以,我的问题是,是不是因为 asyncore 中存在一些性能限制, 还是 C 程序更快?或者可能是我,以低效的方式使用 asyncore?
【问题讨论】:
-
如果您是 Python 的新手,那么可以肯定您的工作效率很低。 Python 的新手经常会写“C 风格”的东西,迭代字符串中的单个字符,没有有效地使用 Python 原语,通常工作在太低的级别。除非您确定您的方法是“Pythonic”且高效,否则 Noufal 的概要分析建议是好的:这样做,如果您不知道为什么最慢的代码如此缓慢,请发布代码更新。
标签: python proxy smtp asyncore smtpd