Unk*_*own 4 php c# c++ django ruby-on-rails
我正在看一个SO成员的开源项目.这是一个用C++编写的Web框架.
现在,您可能已经准备好回应有关C++如何成为网站的可怕语言,而在网站中,瓶颈在于数据库.
但是......我读过这篇文章:
http://art-blog.no-ip.info/cppcms/blog/post/42
在那里,他证明了在维基百科这样的大型网站中,数据库服务器只占所有服务器的10%.因此,C++会比PHP Python Ruby C#等语言更好.
他的观点有效吗?
Jam*_*ett 17
您链接到的文章的问题是,当他询问"瓶颈"在哪里时,作者显然不知道他在说什么.有人拥有比数据库服务器更多的Web服务器的事实并不意味着"数据库不能成为问题所在"."数据库是瓶颈"通常意味着与每个对Web应用程序进行运行时分析的人学习的内容相同.
考虑一个需要半秒钟才能返回完整响应的应用程序.假设您坐下来对其进行分析,并发现处理时间的半秒分解如下:
如果你看到这样的细分,数据库查询占应用程序实际运行时间的70%,你就可以正确地断定数据库是瓶颈.而这正是大多数人发现时,他们就介绍他们的应用程序(和,通常,数据库等完全主导了处理时间的语言,为处理其余的选择没有任何区别的人会发现).
所涉及的数据库服务器数量并不重要; 这里引人注目的一句话就是那些喜欢你所关联的帖子的作者是听到一个女人需要9个月生孩子的类型,并假设九个女人一起工作可以在一个月内完成.在数据库术语中:如果给定查询在给定数据库上执行需要100毫秒,那么添加更多数据库服务器将不会使其中任何一个能够更快地执行该查询.添加更多数据库服务器的原因是能够处理更多并发请求并防止数据库过载,而不是让隔离请求更快.
从那里你可以进入缩放应用程序的常规舞蹈:缓存以减少检索数据或呈现响应所花费的总时间,负载平衡以增加可以服务的并发请求数,分片和更高级的数据库设计防止在负载等情况下陷入困境的方案等
但是,你会注意到,这与使用的编程语言没有任何关系,因为再一次,其他因素花费或节省的时间大大超过了"快速"获得或丢失的时间量.或者"慢"语言(当然,实际上没有这样的东西;在很大程度上取决于问题领域和程序员的技能,你只是无法进行有意义的一般比较).
无论如何,这有点漫长而漫无目的,所以我只想用一般的指导方针来解决这个问题:如果你看到有人在争论"你应该用语言X来构建,因为它运行得更快",那么这是一个死的赠品我真的对现实世界的表现或比例有所了解.因为,毕竟,如果它只是"用最快的语言写作",他们会建议我们都使用汇编:)
Tim*_*van 11
服务器是一次性固定成本的几个盛大.程序员的时间成本远不止于此.当然,用C++编写网站会降低硬件成本,但会大大降低开发速度.因此,如果您可以通过使用Ruby而不是C++来减少开发时间,则可以支付额外的服务器费用.
更好意味着比"更快"更多.
| 归档时间: |
|
| 查看次数: |
1126 次 |
| 最近记录: |