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

作者:韩天峰
链接:http://www.zhihu.com/question/38148900/answer/75115687
来源:知乎

  PHP7在运行原理上与PHP5相比并没有变化,这与hhvm不同。主要是基于perf性能分析工具进行了常规性能优化。

  减少内存分配次数,多使用栈内存,缓存数组hash值,字符串解析成参数改为宏展开,使用大块连续内存代替小块内存等等。更细节信息请看鸟哥的PHP7分享PPT。zend引擎程序的性能提升了很多,PHP程序性能自然好了。所有的优化都是很实在的,从细节入手积少成多。

  想办法去优化一个有20年历史的程序,这是一件非常有挑战性的事情,比推倒重构难度更高。世界上有80%的网站用PHP,使用PHP7后这些网站程序无太大成本就能免费得到1倍性能提升。将节约多少CPU,节约多少电力,减少多少碳排放。另外PHP是开源项目,背后没有商业公司,完全由社区运作。使用PHP语言的开发者和企业从未向PHP官方付过一分钱。所以建议各位知友口下留德,无论您多么鄙视PHP,但请尊重别人为世界所做的付出。

时间: 2024-10-20 14:21:43

PHP7卓越性能背后的原理有哪些?的相关文章

优化安卓应用内存的神奇方法以及背后的原理,一般人我不告诉他

安卓应用一般都害怕自己被杀.内存占用高是被杀的重要原因之中的一个.所以大家都想尽各种招数应对,但效果都一般. 但有一招: WindowManagerGlobal.getInstance().startTrimMemory(TRIM_MEMORY_COMPLETE); 差点儿没有人提及.这段时间tos的实战,在通知栏和桌面都有尝试,发现效果还不错,但要掌握好这个函数的使用方法.须要细致理解背后的原理,毕竟这个调用相当于在局部时间内让应用的一系列GPU缓存被清理.相当于硬件加速失效. 文章分三大部分

优化安卓应用内存的神秘方法以及背后的原理,一般人我不告诉他

安卓应用一般都害怕自己被杀,内存占用高是被杀的重要原因之一,所以大家都想尽各种招数应对,但效果都一般. 但有一招: WindowManagerGlobal.getInstance().startTrimMemory(TRIM_MEMORY_COMPLETE); 几乎没有人提及.这段时间tos的实战,在通知栏和桌面都有尝试,发现效果还不错,但要掌握好这个函数的用法,需要仔细理解背后的原理,毕竟这个调用相当于在局部时间内让应用的一系列GPU缓存被清理,相当于硬件加速失效. 文章分三大部分,第一大部分

雅虎的卓越性能团队已经确定了23个军规

1. 减少HTTP请求次数 合并图片.CSS.JS,改进首次访问用户等待时间. 2. 使用CDN 就近缓存==>智能路由==>负载均衡==>WSA全站动态加速 3. 避免空的src和href 当link标签的href属性为空.script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的URL作为它们的属性值,从而把页面的内容加载进来作为它们的值. 4. 为文件头指定Expires 使内容具有缓存性.避免了接下来的页面访问中不必要的HTTP请求. 5. 使用gzip压缩内容 压缩

从XML文件乱码问题,探寻其背后的原理(转)

由于网友反应本文图片不能显示,由于时间关系未能及时修正.请访问原文地址: 在日常开发工作中,我们经常会使用到XML,早已成为了一种标准.它的用途非常的广泛,但这些不是本文所重点讨论的. 相信大家在做开始时候经常碰到过“乱码”的问题,这是中国程序员非常头疼的问题.我一直很想深入研究关于“编码”的原理,无奈水平有限,那些枯燥的 理论(二进制,ASCII,Unicode,UTF-8,gb2312,ISO ...光这些就让我看的两眼发黑了),实在看不下去,也很难真正搞懂搞明白.望各位网友多指点.....

BFC 神奇背后的原理

BFC已经是一个耳听熟闻的词语了,网上有许多关于BFC的文章,介绍了如何触发BFC, 以及BFC的一些用处(如清浮动,防止margin重叠等).虽然我知道如何利用BFC解决这些问题,但当别人问我BFC是什么,我还是不能很有底气地解释清楚.于是这两天仔细阅读了CSS2.1 spec, 和许多文章,来全面地理解BFC: BFC是个什么? 哪些元素会生成BFC BFC的神奇的作用,及背后的原理 一.BFC是什么? 在解释BFC是什么之前,需要先介绍Box, Formatting context的概念.

从XML文件乱码问题,探寻其背后的原理 (ZHUAN)

出现应用程序读取XML文件乱码的场景: 加入xml文件以<?xml version="1.0" encoding="utf-8" ?> 格式的:如果对xml文件进行修改了,其中包含中文字符的内容,另存为其他格式化时(比如unicod,ANSI)等等格式,则新保存的配置文件,程序读取时候将会出现乱码,不能正常的读取. 验证如下方法: (1).可以将XML文件拖放在IE浏览器上,会出现XML文件无法正常的在浏览器上面渲染. (2).通过Visual stud

从XML文件乱码问题,探寻其背后的原理

出现应用程序读取XML文件乱码的场景: 加入xml文件以<?xml version="1.0" encoding="utf-8" ?> 格式的:如果对xml文件进行修改了,其中包含中文字符的内容,另存为其他格式化时(比如unicod,ANSI)等等格式,则新保存的配置文件,程序读取时候将会出现乱码,不能正常的读取. 验证如下方法: (1).可以将XML文件拖放在IE浏览器上,会出现XML文件无法正常的在浏览器上面渲染. (2).通过Visual stud

前端精选文摘:BFC 神奇背后的原理

一.BFC是什么? 在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很多个 Box 组成的.元素的类型和 display 属性,决定了这个 Box 的类型. 不同类型的 Box, 会参与不同的 Formatting Context(一个决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染.让我们看看有哪些盒子: block-level b

【转】前端精选文摘:BFC 神奇背后的原理

BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等).虽然我知道如何利用 BFC 解决这些问题,但当别人问我 BFC 是什么,我还是不能很有底气地解释清楚.于是这两天仔细阅读了CSS2.1 spec 和许多文章来全面地理解BFC. 一.BFC是什么? 在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS