php7性能原理,php7卓越性能背后的原理有哪些?

喷答主 @朱涵俊 说php没法常驻内存的人,是没理解答主的意思,看不下去了我要出来解释一波。本来想发评论下面的结果字数限制。。匿了

-------------------技术分割线------------------

99%的网站都会用到mvc架构,那php的框架是怎么工作的呢?首先网站根目录会一个apache的配置文件,也就是.htaccess,这个文件告诉apache将所有的请求重定向到index.php,也就是框架的入口文件,然后框架会根据url来匹配对应的路由,没错这一层就是MVC的Controller部分,然后如果路由匹配成功就会执行路由下面程序员写的业务逻辑代码,但业务里面是需要经常访问数据库的,如果一条一条的拼接sql语句那就太麻烦了,所以这时候就要把对数据库的操作按目的的封装成一个个可重用的模块,没错这一层就是MVC里面的Model层,然后通过Model拿到所需的数据后要呈现给用户啊,最后终于轮到View层出马了,view层是由程序员编写的网页模板文件和渲染引擎构成的,将参数和模板文件传给模板引擎,最后模板引擎将渲染完成后的html代码返回给apache,apache再将网页返回给用户的浏览器解析。

从用户点击一个链接到看到网页,也就一眨眼的功夫,没想到php经历了这么多~聪明的你发现了吗?用户每点一次链接,php都会从头从index.php入口文件开始执行,直到最后view渲染出页面~omg我大php表示我的心真的好累~

回到正题,答主一再强调“php每次都要从头执行代码!从头执行代码!从头执行代码!”,你们真的有听明白吗?

为什么说这点是php相比较其他语言慢的原因,你想想啊一个普通的php框架代码量再怎么也有2、3M吧,也就是说每收到一个请求php都会载入一次框架然后从头开始执行,还要执行程序员写的业务逻辑代码。但是java或者nodejs等就不一样了,这些语言写的网站也会用到框架,但是他们的代码和框架是常驻内存的,也就是说每次收到请求后直接就可以立即执行程序员的业务代码了,而不用像php那样要先载入框架controller层解析路由然后再载入model层解析模型代码最后再载入view层解析模板~

这虽然不是php相对较慢的主要原因,但这绝对是php相对其他语言效率较低的重要原因之一,这并不是php烂而是跟php的运行机制有很大原因,以言论仅代表个人立场。大概就这样,没事找事挑刺儿挑我语法问题的人请走开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

链接脚本的编写( 起始地址、text、data、__bss_start、__bss_end、dis反汇编验证)

目录链接脚本的简介以及简单编写编写本试验的链接脚本链接脚本的简介以及简单编写 链接脚本描述了要链接的文件,以及链接顺序、链接首地址。 在博文ARM(IMX6U)裸机C语言版本LED驱动实验中,我们在编译过程中使用Makefile 来链接代…

iOS.UITableView.SectionIndex

1. 为tableview中section建立索引来加速tableview的滚动。 http://nshipster.com/uilocalizedindexedcollation/ 2. 获取汉字的首字母转载于:https://www.cnblogs.com/cwgk/p/3417850.html

java 无法加载资源,JavaScript:无法加载资源:服务器响应状态为404(未找到)

我处理 JavaScript 应用程序,该应用程序在 https://localhost:63342/WalletClient/index.html_ijtk4ock08pqsve8hb7b2b34ou3h5 的localhost地址中打开 . 看起来像这样,单击余额按钮时,它应执行以下 Ajax GET 请求并尝试打开新页面 balance.ht…

ARM(IMX6U)裸机模仿STM32驱动开发实验(定义外设结构体)

参考:Linux之ARM(IMX6U)裸机模仿STM32驱动开发格式 作者:一只青木呀 发布时间: 2020-08-15 12:11:56 网址:https://blog.csdn.net/weixin_45309916/article/details/108019447 目录0.外设结构体抽象思路1.模…

postgresql数据库去重方法

数据库去重有很多方法,下面列出目前理解与使用的方法 第一种 通过group by分组,然后将分组后的数据写入临时表然后再写入另外的表,对于没有出现再group by后面的field可以用函数max,min提取,效率较高--适合情况:这种情况适合重复率…

关于博主

一所二本院校辍学生。屌丝一枚,曾经搬过砖,怕死于砖头之下遂改学网络。误入歧途, 学***半年,网管做到如今。去网吧报老衲名字保证给你打折。转载于:https://blog.51cto.com/anqyunwei/1323497

php自动报价,使用PHP转换所有类型的智能报价

小编典典您需要这样的内容(假设输入UTF-8,而忽略CJK(中文,日文,韩文)):$chr_map array(// Windows codepage 1252"\xC2\x82" > "", // U0082⇒U201A single low-9 quotation mark"\xC2\x84" &g…

ARM(IMX6U)裸机官方SDK包使用

参考:Linux之ARM(IMX6U)裸机C语言LED驱动实验–驱动编写,编译 作者:一只青木呀 发布时间: 2020-08-11 11:20:17 网址:https://blog.csdn.net/weixin_45309916/article/details/107930284 目录1、I.MX6ULL 官…

h5是什么 www.php.cn,html meta标签的作用是什么?

什么是htmlmeta标签:htmlmeta标签的定义和用法:元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。标签位于文档的头部,不包含任何内容。标签的属性定义了与文档相关联的名称/值对。htmlm…

apt-get

apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。 apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保…

Leaflet中添加的不同图层样式图标

如上图,具体问题请查看对应html页引用的basemaps的css样式。 如下图是本项目引用的css样式: .basemap img { width: 48px; border: 2px solid #FFF; margin: 0 2px; /*border-radius: 40px;*/ box-shadow: 0 1px 5px rgba(0,0,0,0.65)} 当css样式中的bor…

ARM(IMX6U)BSP工程文件管理(分文件编程)

参考:Linux之ARM(IMX6U)BSP工程管理实验 作者:一只青木呀 发布时间: 2020-08-15 23:41:37 网址:https://blog.csdn.net/weixin_45309916/article/details/108028093 目录1、工程管理简介1.1、创建bsp、imx6…

ubuntu16.04 安装 ipython

sudo apt-get install ipython3转载于:https://www.cnblogs.com/kanneiren/p/9970127.html

php图片视频,PHP中使用php5-ffmpeg撷取视频图片实例

前几天在玩 FFmpeg 的时后,突然发现 Ubuntu 上多了 php5-ffmpeg 这个扩充套件,就想来玩玩看,看好不好用,有两个结论:读取影片取决于 FFmpeg 的支援性,如果想要什么格式都支援的话,建议自己重新编…

static 与 extern 关键字描述说明

使用static 定义的变量和函数只能用于本模块即为本文件 使用extern 定义的变量和函数可以用于其他模块的引用转载于:https://www.cnblogs.com/heidsoft/p/3420574.html

ARM(IMX6U)裸机C语言蜂鸣器驱动实验(BSP+SDK)

参考:Linux之ARM(IMX6U)裸机C语言蜂鸣器驱动实验–驱动编写,编译 作者:一只青木呀 发布时间: 2020-08-16 14:47:23 网址:https://blog.csdn.net/weixin_45309916/article/details/108032168 目录1、有源蜂鸣…

《深入浅出nodejs》读书笔记(3)

挖坑,待填 转载于:https://www.cnblogs.com/yangzhou33/p/9972378.html

java金字塔的流程图,R中的金字塔图

Plotrix可能更容易,但可以反汇编ggplot图表,并将它们排列为金字塔图 . 使用 eipi10的数据(谢谢),并调整drawing-pyramid-plot-using-r-and-ggplot2中的代码,我为"males","females"和"country…

常用AT指令集 (转)

常 用 AT 命 令 手 册1、常用操作 1.1 AT 命令解释&#xff1a;检测 Module 与串口是否连通&#xff0c;能否接收 AT 命令&#xff1b; 命令格式&#xff1a;AT<CR> 命令返回&#xff1a;OK (与串口通信正常)&#xff08;无返回&#xff0c;与串口通信未连通&#xff09;…

ARM(IMX6U)裸机按键输入实验(BSP+SDK、GPIO输入与输出、按键消抖)

参考&#xff1a;Linux之ARM&#xff08;IMX6U&#xff09;裸机按键输入实验&#xff08;GPIO的输出与输入&#xff09; 作者&#xff1a;一只青木呀 发布时间&#xff1a; 2020-08-17 21:43:37 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/108057…