php运行步骤解析
2000年, PHP4.0发布的时候,引入了Zend Engine. Zend引擎把PHP代码的执行切分成两个阶段:
一. Zend Engine 解析PHP代码并生成二进制中间码Zend Opcodes, Zend Opcodes类似于java bytecodes
二. Zend Engine解释运行Opcodes
这些Opcodes被设计成可能被加载在内存中,这是通过opcode caching extensions实现的。
关于这些缓存扩展可以查阅:
http://en.wikipedia.org/wiki/List_of_PHP_accelerators
缓存扩展仅仅是为了避免PHP代码被重复编译。如果缓存中有相同可用的代码,则直接执行。
这本身并非加速了PHP代码本身的执行速度,只是简化了步骤来提高性能。
你需要通过optimizer extensions来优化PHP代码,获得代码执行速度的提高。
PHP编译实际上都是编译成中间码,实际上PHP的编译还有一种形式,即编译成本地机器码或者WEB服务器的扩展。
PHP内核将类的继承实现放在了"编译阶段" http://www.nowamagic.net/librarys/veda/detail/1515
参考:http://blog.csdn.net/iefreer/article/details/7707483
php运行步骤解析的更多相关文章
- Optaplanner - 从探究示例中的hello world,初步认识规划引擎的运行步骤。
上一篇我们成功以把Opotaplanner规划引擎下载回来,并把它的示例运行起来,简单解析了一下它的Cloud balance示例.这一篇我们这些示例的源代码导入到Eclipse中,看看它在后台是怎么 ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- Linux入门:运行级别解析
Linux入门:运行级别解析 一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别: www.2cto.com ...
- Qt creator自定义编译运行步骤
一直用Qt creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用. 用Qt creator开发一般的工程,是不用修改编译 ...
- centos7安装zabbix3.0超详细步骤解析
centos7安装zabbix3.0超详细步骤解析 很详细,感谢作者 以下是我操作的history 622 java -version 623 javac -version 624 grep SELI ...
- [MapReduce_3] MapReduce 程序运行流程解析
0. 说明 Word Count 程序运行流程解析 && MapReduce 程序运行流程解析 1. Word Count 程序运行流程解析 2. MapReduce 程序运行流程图
- (转)Apache和Nginx运行原理解析
Apache和Nginx运行原理解析 原文:https://www.server110.com/nginx/201402/6543.html Web服务器 Web服务器也称为WWW(WORLD WID ...
- 【ARM-Linux开发】【Qt开发】Qt Creator自定义编译运行步骤
原文:http://www.linuxidc.com/Linux/2015-04/115763.htm 一直用Qt Creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃 ...
- Elasticsearch后台运行步骤
Elasticsearch后台运行步骤 1.cmd 到elasticsearch 中bin目录下 2.elasticsearch-service 出现 3.安装服务 elasticsearch-se ...
随机推荐
- MorningSale 使用帮助
待添加 http://121.37.42.173:8080/morningsale
- [学习笔记] Web设计过程中该做和不该做的
原文网址: http://www.javascriptstyle.com/the-dos-and-donts-of-web-design -该做的: QR代码QR代码即快速响应代码,这是矩阵条形码的一 ...
- 50道经典的JAVA编程题(汇总)
这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...
- 恒天云 3.0:打造基于OpenStack的私有云新模式
摘自恒天云官网:http://www.hengtianyun.com/download-show-id-17.html 云计算在当今IT世界中已发展地如火如荼,越来越多的企业利用云计算改造传统的数据中 ...
- leetcode@ [343] Integer Break (Math & Dynamic Programming)
https://leetcode.com/problems/integer-break/ Given a positive integer n, break it into the sum of at ...
- CentOS上firefox安装flash
CentOS下firefox安装flash说明 CentOS下自带了firefox,但没有flash插件的,按它自己的提示安装不成功,需要手动安装,如下: 1.打开flash官网,http://lab ...
- 用MATLAB实现字符串分割
strsplit更好用,用法: strsplit(strtrim(sprintf(' \t\nds \nhs\t dssd \t \n'))) 以下转载 Matlab的字符串处理没有 ...
- MySQL锁问题最佳实践
最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手.下面将从整个数据库设计,开发,运维阶段介绍如何 ...
- Xamarin.Android真机调试时闪退解决办法
项目->属性->Android Options,Packaging页签 去掉 Use Shared Runtime可解决
- [cocos2d-x]File文件的IO读写处理
转载:http://blog.csdn.net/chiuan/article/details/8618411 为了保存自定义数据文件,需要保存文件和读取文件,也就是File的IO处理: 针对cocos ...