你听说过C ++服务器页面吗?

时间:2009-08-29 04:00:58

标签: c++

我一直在寻找一种方法来最大化我的Web应用程序的速度。遇到了一个名为CSP的有趣应用程序。你们有没有听说过他们?他们声称您可以用c ++编写Web应用程序。值得吗?

http://www.micronovae.com/CSP.html

6 个答案:

答案 0 :(得分:4)

如果您愿意,可以在汇编中对您的网站进行编程。

重点是语言通常不是慢点,在缩放网站时,这是你的设计

代码的执行时间与服务返回请求或仅输出HTML无关;根据您需要做的数据分析类型,它可能是相关的,但在这种情况下,您只需通过您选择的任何Web语言调用它。

建议您选择支持服务器分发的框架,并设计应用程序(和数据库)来处理此问题。这就是你将获得真正好处的方式。

答案 1 :(得分:3)

......值得吗?

这取决于你想要做什么。大多数Web应用程序的构建很少或根本不考虑性能。大多数页面根本不需要CGI。使用数据库和代码来生成/修改页面是有意义的,但通过每次生成向客户端提供页面并不是最佳的。正如其他人所说,创建设计,布局,内容,基础设施并使其全部运行通常优先于生成页面的速度。当前用于性能的方法是反向缓存,边缘缓存,负载平衡,聚类等.Web系统由标准框架(java,php,python,ruby,perl等)提供,性能提升为通过将负载分散到更多的盒子和缓存来满足。任何CGI,甚至是C ++,都会比优化静态服务器(例如nginx)提供的静态文件或使用反向缓存(例如varnish)从内存提供的静态文件慢。据说大多数人都不愿意使用较低级别的语言进行Web服务,因为缺乏较低级语言的知识以及脚本语言中可用的大量代码和框架。

在管理层决定不使用开源代码的项目上,我不同意使用较低级别的语言开发需要更长的时间。如果你在PHP中编写“全部”代码,那么你需要花费很长时间,但大部分时间都没有。大多数人使用其他代码然后声称它比用低级语言编写所有自己的代码更快。

Web应用程序通常非常简单,随着时间的推移,您(或您的公司)将开发一组库来执行标准Web例程。一旦编写完成,CGI网页就可以像在任何脚本语言中一样快速地用C或C ++构建。但是如果你需要将一个json导入到你的AJAX输出中,那么你很可能会用脚本语言而不是低级语言找到一些初学者代码。

是否使用C和C ++构建了Web应用程序?绝对。许多这些“邪恶”的广告服务器都是用C语言编写的,以提高性能。许多基于Web的“应用程序”是使用C或C ++构建的,例如VMware的基于Web的虚拟控制台。

如果您正在寻找性能,请将您的Web应用程序视为两个独立的应用程序。一个是内容管理和页面生成器。另一个是服务框架。可以按需预先生成或生成完整页面和页面片段,并将其作为静态文件提供,远远高于编程语言的任何变化。即使页面仅持续两个请求,也可能是100比1的负载和速度差异。处理会话,身份验证和授权变得棘手。如何从页面中解除会话并保持安全性。这通常通过在Web服务器中使用基于C的模块来完成。对SSL解密,GZIP压缩,流量控制等也做了同样的事情。

如果您正在编写基于Web的游戏服务器或复杂的Web应用程序,那么请务必开始构建C或C ++库。如果您想加快博客速度,请学习并使用群集和缓存技术。

答案 2 :(得分:2)

这真的不是什么新鲜事。就像CGI一样......你执行的应用程序几乎可以用任何挂钩到HTTP管道的语言编写。

答案 3 :(得分:1)

如果您需要在Web应用程序中使用C ++的速度,那么使用通用Web语言创建前端并使用C ++应用程序的接口总是更有意义。

答案 4 :(得分:0)

我最近使用libcgic使用C编写了一个网站。它很有效,而且速度可能很快,但维护很难,因为它不是用非常友好的网络语言编写的。对于几乎所有用途,脚本语言提供的代码的可维护性远远超过使用C或C ++等语言的速度优势。如果有一个特定的函数需要调优,你可以将一些C ++粘贴到更正常的脚本语言中。只有那个部分。

答案 5 :(得分:0)

您可能还想考虑ATL Server(如果您的平台是Windows)。它是一个C ++ Web框架,涵盖了微软提出的Web应用程序(以及更多),然后放弃了对它的支持。但他们发布了他们在非完全开源许可证下所拥有的东西(MS-LPL,它仅限于Windows的使用):

我没有使用它的经验,但如果我打算用C ++做一个网络应用程序,我会看看。