【发布时间】:2009-03-06 16:52:36
【问题描述】:
我想开始编写一个 http 代理,它将根据我将配置的一些规则/过滤器修改响应。但是,在开始编写代码之前,我想确保我在使用 Python 时做出了正确的选择。后来,这个工具必须能够处理很多请求,所以,我想知道我以后可以指望它能够在“迫在眉睫”时执行。
【问题讨论】:
标签: python performance proxy
我想开始编写一个 http 代理,它将根据我将配置的一些规则/过滤器修改响应。但是,在开始编写代码之前,我想确保我在使用 Python 时做出了正确的选择。后来,这个工具必须能够处理很多请求,所以,我想知道我以后可以指望它能够在“迫在眉睫”时执行。
【问题讨论】:
标签: python performance proxy
只要大部分处理使用 Python 的内置模块,就性能而言应该没问题。 Python 的最大优势在于其清晰的语法和易于测试/可维护性。如果您发现代码的某个部分减慢了进程,您可以重写该部分并将其用作 C 模块,同时将大部分控制代码保留在 Python 中。
但是,如果您希望制作最优化的 Python 代码,您可能需要查看this SO post。
【讨论】:
是的,我认为您会发现 Python 完全可以满足您的需求。有大量的 Web 框架、WSGI 库等可供选择,或者在构建自己的框架时学习。
Python History blog 上有一个有趣的post,讲述了 Python 在 1996 年是如何支持高性能网站的。
【讨论】:
这将取决于您使用的库而不是语言本身。众所周知,twisted 框架可以很好地扩展。
这里有一个proxy server example in python/twisted,可以帮助您入门。
底线:明智地选择您的第三方工具,我相信您会没事的。
【讨论】:
Python 在大多数任务中的表现都不错,但如果您习惯了其他语言,则需要更改编程方式。请参阅Python is not Java 了解更多信息。
如果普通的旧 CPython 无法提供您需要的性能,您还有其他选择。
如前所述,您可以在 C 中扩展它(使用像 swig 或 Pyrex 这样的工具)。我也听说过关于 PyPy 的好消息,但请记住它使用了 Python 的受限子集。最后,很多人使用psyco 来提高性能。
【讨论】: