c ++ cgi中的web开发真的会带来巨大的性能提升吗?

use*_*291 7 c++ wt

我在阅读这篇文章后问这个问题 http://stevehanov.ca/blog/index.php?id=95

使用cgi而不是fastcgi也不是一种惩罚吗?

更新:为什么有些人会假装回答"你的性能提升20-30%"?是纯粹的猜测还是这个数字来自可靠的基准?我看过HipHop的性能是在10倍的规模.

mat*_*tiu 20

我已经用几种语言和框架完成了webdev,包括python,php和perl.我自己主持他们,我最大的网站每天点击大约20k.

任何具有合理速度的语言和框架都可以通过向其投入资源来扩展到每天20k次点击.有些人比其他人占用更多资源.(Plone,Joomla.我在看着你).

我的Witty网站(还没有生产)需要更多(从内存大约5000%以上)冲击(使用seige)比我的python网站.IE浏览器.当我用尽力的方式打它们时,诙谐的网站每秒可以提供更多的页面.

我知道这不是一个真正的一般测试.

诙谐的其他速度优势给你:

多线程

如果您使用内置的websrever进行部署(例如,在ha-proxy后面)并让您的应用程序是多线程的..它将比perl或php应用程序加载更少的内存.

通常使用php和perl应用程序,你会让Apache为每个传入连接启动一个进程,每个进程加载整个php解释器,所有代码和变量和对象,什么不是.使用像Joomla和Wordpress这样的重型框架(取决于插件的数量),每个进程都可以在内存消耗方面获得预期的好处.

使用Wt应用程序,每个会话加载一个WApplication实例(一个C++对象),它是整个小部件和东西的树.但无论有多少连接,代码使用的内存都保持不变.

内置的Web2.0

通常使用传统的应用程序,它们仍然围绕着旧的"http请求进来"......我们提供了一个页面'...'完成'的风格.我知道他们一直在添加越来越多的AJAXy.

使用Wt,它默认使用WebSockets,只更新需要更新的页面部分.它回退到标准AJAX,然后如果不支持http请求.使用支持AJAX和WebSockets的客户端,不断使用相同的WApplication C++对象..因此,在设置新会话时不会失去任何速度.

回应'C++对于webdev来说太难了'

C++确实有一点学习曲线.在九十年代中期,我们用Java j2ee做了网站.那时候被认为是商业上可行的,并且是一种超级痛苦的发展,但它确实具有鼓励良好文档和编码实践的良好优势.

使用脚本网站,很容易采取捷径,而不是意识到他们在那里.例如,我工作的一个8岁的perl网站有一些代码重复,没有人注意到.每次显示产品列表时,它都会运行两次相同的SQL查询.

使用C++站点,我认为它的机会较少,因为在perl站点中,没有那么多的编程结构(如函数),它只是perl和嵌入式html.在C++中,您可能拥有带名称的方法,最终会出现名称冲突.

类型

有一次,有一个方法接受了一个int标识符,稍后我们将它改为一个uuid字符串.Python代码很棒,我们认为我们不需要改变它; 它运行得很好.然而,当你传递一个字符串时,很少有深埋的线条会产生不同的效果.很难追查错误,破坏了数据库.(幸运的是只在开发和测试机器上).

C++肯定会抱怨很多,并迫使我们重新编写所涉及的函数而不是懒惰的bugger.

使用C++和Java,编译器会出错并为您发出很多错误警告.

与脚本语言应用程序相比,我发现单元测试通常不像C++应用程序那样完全必要(不要拍我).这是因为语言强制执行了许多你通常在单元测试中放入python应用程序的东西.

摘要

从我迄今为止的经验来看,开发内容比现有框架需要更长的时间.主要是因为现有的框架在那里有更多的开箱即用的东西.然而,在Wt中制作极其自定义的应用程序比使用Wordpress imho更容易.

  • 彻底回答所以我给你正确答案谢谢:) (2认同)

Jad*_*aMD 9

从与PHP谈过的人谈到了Wt(一个C++ Web框架),他们报告了重大改进.从我使用Wt创建的小应用程序中学习它,我发现它比我创建的相同PHP类型的应用程序运行得更快.拿出你想要的信息,但我卖了.


Zep*_*ock 5

这让我想起20-30年前人们如何使用Assembly vs C,然后是10 - 20年前的C vs C++.当然,C++将比​​PHP/Rails更快,但构建可维护和可伸缩的应用程序需要花费5倍的精力.

关键是,在牺牲开发资源的同时,您可以获得20-30%的性能提升.您希望应用程序的工作速度提高30%还是实现了1/2的功能?

  • Wt就是这样一个库,它使用C++编写Web应用程序比在Ruby或PHP中更容易,并且使您的应用程序运行因子更快(出于各种原因).几毫秒的往返时间让用户满意. (2认同)