1  抽象语法树( AST) 1)在 PHP5中,从 php 脚本到 opcodes 的执行的过程是: Lexing:词法扫描分析,将源文件转换成 token 流:    Parsing:语法分析,在此阶段生成 op arrays. 2)PHP7 中在语法分析阶段不再直接生成 op arrays,而是先生成 AST,所以过程多了一步: Lexing:词法扫描分析,将源文件转换成 token 流:    Parsing:语法分析,从 token 流生成抽象语法树:    Compilation:从…
前言 PHP团队宣布PHP8正式GA(链接).php的发展又开启了新的篇章,PHP8.0.0版本引入了一些重大变更及许多新特性和性能优化机制.火速学习下~ JIT(Just in Time Compiler) 即时编译器 JIT 是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行.在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的…
v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化. 本文会介绍其中最值得注意的几个. http://www.infoq.com/cn/articles/nodejs-v012-optimize-performance?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk Node.js和…
v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以支持“塞住(corked)”模式,类似于你执行man tcp时见到的socket选项TCP_CORK和TCP_NOPUSH. 当被塞住时,写到流中的数据会排队直到流被重新开塞(uncorked).这样Node.js可以将比较小的写操作合并成比较大的,从而减少系统调用和TCP往返.   http模块已…
PHP5.4.0新特性研究 1.内建Web Server 这的确是个好的改进,大大的方便了开发人员.以后开发机不装nginx,httpd也行 cd $PHP_INSTALL_PATH ./bin/php -S <addr>:<port> -t <docroot> 如: 前台运行: ./bin/php -S localhost: -t /data/www/ 后台运行: ./bin/php -S localhost: -t /data/www/ >> /tmp/…
在2.6版本发布两个月之后,Git 2.7发布.该版本带来了许多新特性以及性能的提升. 本文选取了Git 2.7带来的主要变化: git remote支持get-url子命令,可以显示指定远端的URL. git rebase新增了一个命令行选项--no-autostash,可以覆盖配置变量rebase.autostash. git worktree支持list子命令,可以显示代码库的工作树及相关的分支.工作树是Git 2.5初次引入的一个特性,旨在使在同一个代码库的多个分支上工作更简单. git…
1 生成器 yield关键字yield的中文文档在这里:http://php.net/manual/zh/language.generators.overview.php查看文档,能知道yield的一个功能就是能有效的降低迭代的内存开销.比如官网的这个xrange例子: <?php function xrange($start, $limit, $step = 1) { for ($i = $start; $i <= $limit; $i += $step) { yield $i; } } e…
1. PHP5.3中的新特性 1.1 支持命名空间(namespace) 毫无疑问,命名空间是PHP5.3所带来的最重要的新特性. 在PHP5.3中,可以用命名空间防止代码的冲突,命名空间的分隔符为 \ 反斜线. 1.2 通过static关键字,实现方法的延迟静态绑定 在PHP中,我们可以在类中通过self关键字或者CLASS来判断或调用当前类.但有一个问题,如果我们是在子类中调用,得到的结果将是父类.因为在继承父类的时候,静态成员就已经被绑定了.例如: <?php class A { publ…
看了@轩脉刃 今天出炉的PHP 5.5 新特性.不过没有翻译全,我这里稍微补充下,整理成完整的一篇:) 原文:http://www.php.net/manual/zh/migration55.new-features.php 生成器 php5.5通过引入yield关键字来支持generators.Generators提供了一种更加简洁的生成迭代器的方式,无需通过笨重复杂的Iterator接口. 一个简单的示例:利用generators实现和range函数一样的迭代功能 function xran…
1.IconFont:图标字体,这是近年来新流行的一种以字体代替图片的技术.它可以适应任何分辨率而不会出现图片模糊问题,与图片相比它具有更小的容量,更高的灵活性(像字体一样可以设置图标大小.颜色.透明度.hover状态.反转等),IE8以上的浏览器都支持该技术.在使用IconFont之前,你首先要确定你选则的字体库是否是收费. 2.PC 时代的性能优化工程化产品 -- StyleCombine StyleCombine 我们称其为服务端的模块加载器,这是一个为前端性能而生的极致化产品.以工程化的…