FastCGI C++ vs. A Script Language (PHP/Python/Perl)

2022-08-30 17:20:12

使用FastCGI C++与.PHP/ Python / Perl做同样的工作有什么起伏。

是否有任何性能或设计缺陷,或者使用一个而不是另一个?甚至您的意见也欢迎您。(告诉我为什么一个或另一个岩石,或一个或另一个很糟糕)。


答案 1

脚本语言可能比C慢,但这是一个问题吗?几乎从不。如果性能成为问题,您开始只翻译关键部分。

twitter/ruby就是一个很好的例子。红宝石很慢。一些语言功能(首先使ruby很好)只是阻止了不同类型的优化(jruby家伙有一篇关于此的很棒的文章......是奥拉比尼吗?不记得了)。

尽管如此,twitter还是由ruby驱动的,因为ruby足够快。不久前,“博客”报道Twitter出于性能原因迁移到scala...事实是,只有消息传递队列(以及后端的其他部分)移动到scala。雅虎在多种语言上运行;php用于前端,其他更快的语言用于性能至关重要的地方。

那么,为什么性能不那么重要呢?有几个原因:

  • 数据库瓶颈:不是脚本编写速度慢,而是数据库是
  • 客户端瓶颈:在浏览器中呈现比请求花费更长的时间。优化服务器端,没有人会注意到
  • 水平扩展:通常,添加另一台服务器比优化应用程序更便宜,因此每秒请求数增加三倍
  • 开发人员时间和维护是项目中最昂贵的部分。您将获得比支持Web的c编码人员更便宜的python开发人员,这些开发人员可以在更短的时间内维护您的应用程序
  • 无需编译,开发周期短

另一个支持脚本的点:许多脚本语言都支持内联或包含快速(C)代码:

  • python, inline c
  • php:c 中的扩展
  • 通过 rhino 的服务器端 javascript:直接访问 java/jvm(一个很好的例子是 orf.at,这是奥地利最大的网站之一,由 helma 提供支持 - serverside jvm 解释型 javascript!

我认为,特别是在Web开发中,高级脚本的优点远远超过缺点。


答案 2

几年前,我或多或少地在工作中学习了Web应用程序编程。C是我所知道的主要语言,所以我用C编写了(相当大规模的)Web应用程序。C的字符串处理和内存管理很乏味,再加上我在Web应用程序方面缺乏经验,它很快成为一个难以维护的项目。

C++会好得多,主要是因为它比.std::stringchar*

但是,现在我每次都会使用Python(尽管PHP不是一个糟糕的选择,也许更容易上手)。Python的字符串处理非常棒,它可以无缝地处理Unicode。Python拥有比C++更好的Web工具和框架,其正则表达式处理和标准库(urllib,email等)工作得很好。而且您不必担心内存管理。

如果我受到严重的RAM限制(例如在嵌入式微型上),或者如果我在Google工作并且正在编写一个每秒必须响应数千个查询的搜索引擎,我可能只会将C或C++用于Web应用程序。


推荐