产品官网 a>
首页 a>
问答 a>
专栏 a>
话题 a>
商城 a>
标签库 a>
视频教程 a>
首页
问题库
资讯专栏
问答专家
标签库
课程中心
NEW
发布
提问题
发文章
php7卓越性能背后的原理有哪些?
财富值49
2016-08-19 08:18
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
4019
10
4
PHP7卓越性能背后的原理有哪些?
发送
×
付费偷看金额在0.1-10元之间
确定
10条回答
♥一鹿有晗&永不孤单♥
- 在不肯谢幕的年华,让爱情开出地老天荒的花。
1楼 · 2016-08-19 08:02.
采纳回答
那些骂PHP的人,真心相对你们说,你们嫉妒心太强了。想想你们用的语言,哪个不是设计者搞了一堆一堆的所谓的规则和所谓的语法,让你在所谓的语言世界里跳来跳去,想想你们每天的工作内容: 是在玩电脑,还是电脑在玩你? 你们就是太见不得自己辛辛苦苦学习了一门语言,结果有一门语言可以快速学习掌握。世界在进步,接受新东西吧。不要被自己已掌握的知识框死了。
加载中...
你tm够够的了
- 那段爱情,曾经是那么的完美,如今却是多么的残破。
2楼-- · 2016-08-19 08:10
性能不知道,反正看人用着真心开心,自己也看得顺眼~
加载中...
吾丨十三
- 双眼紧闭,头晕目眩却只想被你拥抱、。
3楼-- · 2016-08-19 08:10
世界上只有两种语言。 一种是被人骂的。 一种是无人问津的。 就这样。
加载中...
南宫364
- 可惜我不是陈奕迅,也不是k歌之王,我能给你的就只有稳稳的幸福。
4楼-- · 2016-08-19 08:11
PHP7在运行原理上与PHP5相比并没有变化,这与hhvm不同。主要是基于perf性能分析工具进行了常规性能优化。
减少内存分配次数,多使用栈内存,缓存数组hash值,字符串解析成参数改为宏展开,使用大块连续内存代替小块内存等等。更细节信息请看鸟哥的PHP7分享PPT。zend引擎程序的性能提升了很多,PHP程序性能自然好了。所有的优化都是很实在的,从细节入手积少成多。
想办法去优化一个有20年历史的程序,这是一件非常有挑战性的事情,比推到重构难度更高。世界上有80%的网站用PHP,使用PHP7后这些网站程序无太大成本就能免费得到1倍性能提升。将节约多少CPU,节约多少电力,减少多少碳排放。另外PHP是开源项目,背后没有商业公司,完全由社区运作。使用PHP语言的开发者和企业从未向PHP官方付过一分钱。所以建议各位知友口下留德,无论您多么鄙视PHP,但请尊重别人为世界所做的付出。
加载中...
lileiyang12
- 吵归吵,闹归闹,一起到老好不好。
5楼-- · 2016-08-19 08:09
php性能低是在架构。php每个请求都要重新加载一次。用php做中文分词,每个请求都要加载几兆的字典,能不慢吗。java为啥快,其中一个原因就是常驻服务端。lua为啥快,因为直接嵌入nginx里面。
既然很多人不复php效率低,那么就来约测试吧。
做一个php的echo代码,然后用ab测试下,看看每秒请求多少次?
lua我测试是1万次/秒。看看php能达到1000次/秒不。
无论啥优化都可以做。
加载中...
- 莪想看你的笑容,你的笑有着温暖人心的魔力。
6楼-- · 2016-08-19 08:11
PHPs new hashtable implementation
Internal value representation in PHP 7
-1
Internal value representation in PHP 7
- 2
see
How is PHP 7 twice as fast? : PHP
加载中...
南宫364
- 可惜我不是陈奕迅,也不是k歌之王,我能给你的就只有稳稳的幸福。
7楼-- · 2016-08-19 08:11
喷答主
@朱涵俊
说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的运行机制有很大原因,以言论仅代表个人立场。大概就这样,没事找事挑刺儿挑我语法问题的人请走开。
加载中...
datrun
- 有一些记忆、始终在脑海最深刻的地方、
8楼-- · 2016-08-19 08:11
php7性能优化主要是细节优化,并没有从本质上改变什么,
打个比方,swoole虽然只是个扩展,但是相当于从50分到60的提高,
php7相当于从80分到90分的提高。
php是弱类型,jit比强类型难很多。
一门语言的成功是多方面的,性能只是指标之一,简单耐操,不出乱子就是php的特色,另外纠正楼上的,php并不是完全请求释放,有部分就是常驻的,你说的分词完全可以随php启动而常驻,我们曾经就干过这事。
最后,从没有觉得php7的对手是node,python,ruby,java,
php7最大的对手是php5.先干掉php5才是他最大的难题。
加载中...
伱灬不懂
- 真爱就是两个长得像猪一样的人,还生怕对方被别人抢走了。
9楼-- · 2016-08-19 08:07
在2015年的《PHP技术峰会》(PHPCon,上海)听鸟哥的PHP7分享,写过一篇解析文章,基本覆盖了技术分享的核心内容,有兴趣的同学可以看看。
(为了确保PHP7技术解析的点,不对其他同学产生误导,专门请鸟哥做过文章review)
PHP7革新与性能优化
加载中...
wfxlhh123
- 如湖水般清澈的眼眸,让我无法离开视线。
10楼-- · 2016-08-19 08:08
PHP7性能的确有很大的提升,但个人认为还称不上卓越二字,除非运行机制有本质的变化,否则,正如
@韩天峰
网友评论中说的那样,对解释器进行优化。PHP性能相对Java之类的半编译或C这种编译语言低,这个是PHP代码运行机制决定的。做PHP的如果连这个都不懂的话,要么不了解PHP,要么只了解PHP。但这也不能得出PHP不如Java或C这个结论,项目一般来说需要基于开放成本和运行成本来决定选择语言和架构,使用合适的工具干合适的事而已,一个语言能干什么不能干什么,性能不能一票否决。开发语言排行榜中PHP的排名已经足以证明PHP的成就了,很多做PHP的人不能正视这点,一般都是因为对PHP了解的不多或对其他语言缺乏了解导致的不自信。数据结构+算法才是程序中最重要的,PHP7的优化正是从这两方面来提升PHP性能的,而这也表明如果我们这些PHP程序员做得足够好的话,我们写出的代码,处理同样逻辑,会比那些垃圾的C或Java程序员的代码性能更高。当然也有优秀的C和Java程序员,但他们是不会来嘲笑另外一种语言的,因为他们更明白数据结构+算法=程序这个道理。
我们最近在一个项目中用Symfony,另一个项目中用Laravel,这两个都是优秀的PHP Framework,我的感受还是坚信PHP真的不是追求高运行性能的编程语言。但巧妙地利用PHP弱类型这一特性,有时比Java或C#方便多了,这两种语言的反射技术还是不如PHP反射加动态来得方便。
加载中...
一周热门
更多
>
相关问题
蔺相如的成功背后有哪些因素在起作用
2 个回答
超微粉碎设备的工作原理及性能是什么?
1 个回答
微波真空干燥的原理有哪些?
2 个回答
消毒设备有哪些?他们的作用原理分别是什么?
3 个回答
淬火后不同碳含量的钢的性能有何不同?造成这些差异的因素有哪些?
0 个回答
谁帮我详细介绍一下全自动对位贴合机有哪些工作原理及使用方法?
0 个回答
证件照背后有地址、日期和相铺名称,可以做到吗
0 个回答
高标号汽油与低标号汽油的挥发性能其别在哪些方面
0 个回答
ucenter1.6不支持php7,有什么办法可以修复?
1 个回答
相关文章
陈能宽病逝 23位"两弹一星"功臣中已有17人离去
有17人离去" class="anum">0个评论
uc_server、Ucenter完全兼容php7+下载,无需安装duscuzX,已测试通过
2个评论
ask2问答系统安装最低环境要求
1个评论
下一代石墨烯电池:手机五分钟充满电量
0个评论
本田CR-Z混动钢炮将停产 冷落背后是迷途
0个评论
广州一本上线人数11622人 文理科前200全省最多
0个评论
php培训内容有人了解吗?
0个评论
高速转弯不减速? 马自达发布精密转向系统
0个评论
女子2年前买二手冰箱 背后纸板制成一抠就烂
0个评论
对焦更快更安静 解析佳能STM步进式马达
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
付费偷看金额在0.1-10元之间
减少内存分配次数,多使用栈内存,缓存数组hash值,字符串解析成参数改为宏展开,使用大块连续内存代替小块内存等等。更细节信息请看鸟哥的PHP7分享PPT。zend引擎程序的性能提升了很多,PHP程序性能自然好了。所有的优化都是很实在的,从细节入手积少成多。
想办法去优化一个有20年历史的程序,这是一件非常有挑战性的事情,比推到重构难度更高。世界上有80%的网站用PHP,使用PHP7后这些网站程序无太大成本就能免费得到1倍性能提升。将节约多少CPU,节约多少电力,减少多少碳排放。另外PHP是开源项目,背后没有商业公司,完全由社区运作。使用PHP语言的开发者和企业从未向PHP官方付过一分钱。所以建议各位知友口下留德,无论您多么鄙视PHP,但请尊重别人为世界所做的付出。
既然很多人不复php效率低,那么就来约测试吧。
做一个php的echo代码,然后用ab测试下,看看每秒请求多少次?
lua我测试是1万次/秒。看看php能达到1000次/秒不。
无论啥优化都可以做。
see How is PHP 7 twice as fast? : 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的运行机制有很大原因,以言论仅代表个人立场。大概就这样,没事找事挑刺儿挑我语法问题的人请走开。
打个比方,swoole虽然只是个扩展,但是相当于从50分到60的提高,
php7相当于从80分到90分的提高。
php是弱类型,jit比强类型难很多。
一门语言的成功是多方面的,性能只是指标之一,简单耐操,不出乱子就是php的特色,另外纠正楼上的,php并不是完全请求释放,有部分就是常驻的,你说的分词完全可以随php启动而常驻,我们曾经就干过这事。
最后,从没有觉得php7的对手是node,python,ruby,java,
php7最大的对手是php5.先干掉php5才是他最大的难题。
(为了确保PHP7技术解析的点,不对其他同学产生误导,专门请鸟哥做过文章review)
PHP7革新与性能优化
我们最近在一个项目中用Symfony,另一个项目中用Laravel,这两个都是优秀的PHP Framework,我的感受还是坚信PHP真的不是追求高运行性能的编程语言。但巧妙地利用PHP弱类型这一特性,有时比Java或C#方便多了,这两种语言的反射技术还是不如PHP反射加动态来得方便。
一周热门 更多>