正在使用PHP与全栈框架的高负荷项目是一个坏主意?

我知道PHP代码被编译为字节码并在每次运行(即每个页面请求)上重新执行。所以引擎应该在每个请求中重新定义所有使用的类,函数,变量等。正在使用PHP与全栈框架的高负荷项目是一个坏主意?

当使用像Laravel或CakePHP的全栈框架,这也意味着,在每一个请求相同引导工作再一次完成的,像解析配置文件,登记路线,自动加载类等

这似乎对于处理这种东西是非常不理想的方式。即使是缓存,无论是OPcache还是框架缓存系统,都没有足够的帮助,因为脚本仍然需要执行。

另一方面,基于引擎(如NodeJS或Ruby)的应用程序在启动期间仅编译和引导一次。所以我想他们应该比PHP有更好的可伸缩性。

但是PHP非常流行,甚至Facebook使用它。所以我想知道,对于可能会出现重负载的网站,正确的选择是什么?使用PHP与全栈框架为这样的目的是一个坏主意?

回答:

我知道PHP代码被编译为字节码并在每次运行(即每个页面请求)上重新执行。所以引擎应该在每个请求中重新定义所有使用的类,函数,变量等。

从PHP 5.5开始,默认为opcode cache。此前,可以使用APC。你也可以使用像HHVM这样的东西通过JIT编译进一步提高性能(PHP 7将包括类似的改进)。

当使用像Laravel或CakePHP的堆满框架这也意味着,在每一个请求相同的自举工作连连完成,像解析配置文件,登记的路由,自动加载类等等

Laravel(我不能说CakePHP)只在使用它们时加载类 - 大多数类不会在平均请求中加载。关于使用像Symfony/Laravel这样的大型框架的大多数偏执就是 - 偏执狂。

这似乎是处理这种东西的非常不理想的方式。即使是缓存,无论是OPcache还是框架缓存系统,都没有足够的帮助,因为脚本仍然需要执行。

操作码缓存和框架缓存(文件,Redis等)提供了巨大的好处,您在这里相当傲慢地解雇。是的,需要为每个请求执行代码(尽管像Varnish这样的东西可以减少这种情况) - 但对于任何语言和任何框架来说都是如此。

以上是 正在使用PHP与全栈框架的高负荷项目是一个坏主意? 的全部内容, 来源链接: utcz.com/qa/263915.html

回到顶部