首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在高负载项目中使用PHP和全堆栈框架是个坏主意吗?

在高负载项目中使用PHP和全堆栈框架是个坏主意吗?
EN

Stack Overflow用户
提问于 2015-02-24 16:14:19
回答 1查看 177关注 0票数 0

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

当使用像Laravel或CakePHP这样的全堆栈框架时,这也意味着在每个请求上都会重复执行相同的引导工作,比如解析配置文件、注册路由、自动加载类等等。

这似乎是非常不理想的处理这些东西的方式。甚至缓存,无论是OPcache还是框架缓存系统,都是不够有用的,因为脚本仍然需要执行。

另一方面,基于NodeJS或Ruby等引擎的应用程序在启动期间只编译和引导一次。因此,我认为它们应该比PHP具有更好的可伸缩性。

但是PHP是如此流行,甚至Facebook也在使用它。所以我想知道,对于一个可能会经历沉重负担的网站来说,什么是正确的选择?将PHP与全栈框架结合使用是个坏主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-24 16:20:37

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

从PHP5.5开始,默认为操作码缓存。在此之前,可以使用APC。您还可以使用类似于HHVM的东西,通过JIT编译进一步提高性能(PHP7将包括类似的改进)。

当使用像Laravel或CakePHP这样的全堆栈框架时,这也意味着在每个请求上都会重复执行相同的引导工作,比如解析配置文件、注册路由、自动加载类等等。

Laravel (我不能代表CakePHP)只在使用类时加载类--大多数类都不会加载在一个普通请求中。大多数关于使用更大的框架(如Symfony/Laravel )的偏执就是--偏执。

这似乎是非常不理想的处理这些东西的方式。甚至缓存,无论是OPcache还是框架缓存系统,都是不够有用的,因为脚本仍然需要执行。

Opcode缓存和框架缓存(文件、Redis等)提供巨大的好处,而你在这里是相当傲慢地拒绝。是的,每一个请求都需要执行代码(尽管这样的内容甚至可以减少)--但是对于任何语言和任何框架来说,这样的情况都是真的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28700798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档