我一直在寻找一种方法来最大化我的web应用程序的速度。遇到了一个名为CSP的有趣的应用程序。你们听说过他们吗?他们声称你可以用c++编写web应用程序。值得吗?
发布于 2009-08-28 20:56:24
...Is它值得吗?
这取决于你想要做什么。大多数web应用程序在构建时很少或根本不考虑性能。大多数页面根本不需要CGI。使用数据库和代码来生成/修改页面是有意义的,但是通过每次生成来为客户端提供页面并不是最优的。正如其他人所说,创建设计、布局、内容、基础设施并保持其运行通常优先于生成页面的速度。当前用于提高性能的方法有反向缓存、边缘缓存、负载均衡、集群等。web系统由标准框架(java、php、python、ruby、perl等)提供。通过将负载分散到更多的机器和缓存来实现性能提升。任何CGI,甚至是C++,都会比优化的静态服务器提供的静态文件慢(例如,nginx)或使用反向缓存从内存中提供的静态文件(例如清漆)。也就是说,由于缺乏低级语言的知识,以及脚本语言中可用的大量代码和框架,大多数人都不愿使用低级语言进行web服务。
我曾经在管理部门规定不使用开放源代码的项目中工作过,因此我不同意使用低级语言进行开发需要更长的时间。如果你用PHP写“所有”代码,你会花同样多的时间,但大多数人不会。大多数人使用别人的代码,然后声称这比用低级语言写你自己的代码要快。
Web应用程序通常非常简单,随着时间的推移,您(或您的公司)将开发一组库来执行标准的web例程。一旦写好,用C或C++就可以像用任何脚本语言一样快地构建一个CGI网页。但是,如果您需要将json导入到AJAX输出中,您很可能会找到一些脚本语言的起始代码,而不是低级语言。
web应用是用C和C++构建的吗?绝对一点儿没错。许多“邪恶”的广告服务器都是用C语言编写的,以提高性能。许多基于web的“应用程序”都是使用C或C++构建的,比如VMware的基于web的虚拟控制台。
如果你在寻找性能,可以把你的web应用程序看作是两个独立的应用程序。一个是内容管理和页面生成器。另一种是服务框架。整个页面和页面片段可以预先生成或按需生成,并作为静态文件提供,其性能远远超过编程语言中的任何更改。即使一个页面只持续两个请求,也可能存在100比1的负载和速度差异。处理会话、身份验证和授权成为棘手的部分。如何从页面中解耦会话并维护安全性。这通常是通过在web服务器中使用基于C的模块来完成的。同样的事情也适用于SSL解密、GZIP压缩、流量控制等。
如果您正在编写基于web的游戏服务器或复杂的web应用程序,那么一定要开始构建C或C++库。如果你想提高博客的速度,学习和使用集群和缓存技术。
发布于 2009-08-28 20:09:45
如果你喜欢,你可以用汇编来编写你的网站。
重点是,语言通常不是最慢的,在扩展网站时,你的设计才是最重要的。
代码的执行时间与服务返回请求或仅输出HTML并不真正相关;它可能与您需要执行的数据分析的类型相关,但在这种情况下,您只需通过您选择的任何web语言调用它。
建议您选择一个支持在服务器上分发的框架,并设计应用程序(和数据库)来处理此问题。这就是你将获得真正好处的方式。
发布于 2009-08-28 20:05:52
这并不是什么新鲜事。就像CGI的....您可以执行一个应用程序,该应用程序几乎可以用任何连接到HTTP管道的语言编写。
https://stackoverflow.com/questions/1350410
复制