加载进程以运行webrequest

时间:2011-04-06 13:29:10

标签: php c++ apache cgi

当我在以前的工作场所是一家搜索引擎公司时,我注意到他们有使用C ++构建的可执行文件,这些文件是通过cgi脚本使用命令行参数调用的,用于为每个webrequest提供服务。 (例如,当用户点击搜索按钮时)

我无法理解完整的大图,但很惊讶在为每个用户请求启动新进程时会有多少开销,因为OS加载程序必须映射进程空间等(它是unix solaris)

这是一种过时的技术,还是我错过了什么? (例如,如果可以通过创建永久映射来优化流程启动,他们就会这样做)。或者是否有更好的替代方法来运行Web请求的C ++代码?

1 个答案:

答案 0 :(得分:0)

Solaris可能已针对该用途进行了优化。是的,它必须初始化进程内存,但它可能会重用很多工作,并且只需要复制几千字节。

每个请求加载进程的唯一选择是允许服务器进程内的可扩展性。这可能会影响稳定性,限制服务器扩展,并对程序员提出额外要求。性能优势可能不值得。

如果性能优势值得,那么您可以将应用程序重写为扩展/模块/ servlet /等等。