Apache 模块:C 模块与 mod_wsgi python 模块 - 性能

发布于 2024-09-03 07:03:08 字数 218 浏览 2 评论 0原文

出于性能原因,我们的一个客户要求我们在 Apache Web 服务器中用 C 语言实现一个模块。该模块应该处理 RESTful uri、访问数据库并以 json 格式返回结果。这里的许多人都推荐使用 python mod_wsgi - 但出于编程简单的原因。谁能告诉我 mod_wsgi python 解决方案与 Apache + C.module 之间的性能是否存在显着差异。有什么轶事吗?指向网上发布的一些研究的指针?

A client of ours is asking us to implement a module in C in Apache webserver for performance reasons. This module should handle RESTful uri's, access a database and return results in json format. Many people here have recommended python mod_wsgi instead - but for simplicity of programming reasons. Can anyone tell me if there is a significant difference in performance between the mod_wsgi python solution vs. the Apache + C.module. Any anecdotes? Pointers to some study posted online?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

舂唻埖巳落 2024-09-10 07:03:08

该模块应该处理 RESTful uri,访问数据库并以 json 格式返回结果。

听起来大部分工作都是 I/O 绑定的,因此使用 C 不会获得太多性能提升。

这是我推荐的策略。

  1. 用 Python
  2. 实现 完成后,分析代码以查看是否存在任何 CPU 瓶颈。
  3. 仅在 C 中实现瓶颈部分。

This module should handle RESTful uri's, access a database and return results in json format.

That sounds like the bulk of the work is I/O bound so you will not get much of a performance boost by using C.

Here is the strategy I would recommend.

  1. Implement in Python
  2. After getting it done, profile the code to see if there are any CPU bottlenecks.
  3. Implement just the bottleneck portions in C.
累赘 2024-09-10 07:03:08

G-WAN ANSI C 脚本已经表明,C 脚本在速度方面有天壤之别,请参阅:

gwan.com

因此,使用 C 可能不是一个坏主意...

G-WAN ANSI C scripts have shown that C scripts make a world of difference in terms of speed, see:

gwan.com

So using C might not be a bad idea after all...

甚是思念 2024-09-10 07:03:08

如果您想要两全其美:可维护的代码和速度,请使用 Cython (http://cython.org)。 Cython 将 Python 代码(带有可选类型信息)编译为 C 或 C++,然后将其编译为系统代码。

If you want the best of both worlds: maintainable code and speed, use Cython (http://cython.org). Cython compiles Python code (with optional type information) to C or C++, which in turn is compiled to system code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文