一切的开始: SAPI接口SAPI(Server Application Programming Interface)指的是PHP具体应用的编程接口, 就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行, PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令...
分类:
其他好文 时间:
2015-04-15 16:47:31
阅读次数:
168
原文地址:http://www.phppan.com/2009/12/zend-hashtable/在PHP的Zend引擎中,有一个数据结构非常重要,它无处不在,是PHP数据存储的核心,各种常量、变量、函数、类、对象等都用它来组织,这个数据结构就是HashTable。HashTable在通常的数据结...
分类:
其他好文 时间:
2015-02-03 19:22:19
阅读次数:
177
开放平台有一个通知的需求,需要一个消费进程不断的去读取buffer中的数据,然后消费并删除。于是,我用cron每分钟起一个php进程去读取数据库,并做通知的工作。同时,增加了一个文件锁,保证同一时间只能有一个进程在干活。
某一天,突然发现buffer中的数据有增无减,进程的工作日志也已经没有输出了。ps看了一下进程,还是处于运行态,ltrace和strace都是空,看上去像是进入了某个whi...
分类:
其他好文 时间:
2015-01-26 13:38:12
阅读次数:
139
堆管理算法
Buddy System
Bitmap
Zend引擎...
分类:
编程语言 时间:
2015-01-11 00:58:42
阅读次数:
268
本文引用《高性能 PHP 开发》来做下记录
无论从命令行还是从 Web 服务器上执行 PHP 脚本时,PHP 必须执行所需的5个步骤。
Zend 引擎必须从文件系统中读取该文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码(称为Opcode),最后执行 Opcode。
PHP 的生命周期非常的短暂,但是,每次对脚本发起请求时,它必须执行这5个步骤。每次在针对特定的 PHP 脚本的请求...
分类:
Web程序 时间:
2015-01-07 18:59:02
阅读次数:
225
php的内存管理由zend引擎处理分为三个层次接口层-》heap层-》存储层(malloc)PHP底层对内存的管理, 围绕着?块内存列表(free_buckets)、 ?块内存列表(large_free_buckets)和 剩余内存列表(rest_buckets)三个列表来分层进?的。 ZendMM...
分类:
Web程序 时间:
2014-12-14 13:10:12
阅读次数:
209
php一切的开始sapi,脚本的执行都是以sapi接口实现的,apache mod_php 、php cli都是一样只是通过不通的sapi接口。php的生命周期:MINIT(模块初始化调取各个扩展对应的minit,初始化zend引擎及核心组件包括对词法分析、语法分析、中间代码执行指针初始化等,全局变...
分类:
Web程序 时间:
2014-12-12 18:50:20
阅读次数:
169
php的词法分析、语法分析大多采用Flex/Bison处理在语法分析完成后,由zend引擎生成中间代码(使用opcache可以省略编译阶段)opcode,PHP是构建在Zend虚拟机(Zend VM)之上的。PHP的opcode就是Zend虚拟机中的指令在PHP实现内部,opcode由如下的结构体表...
分类:
Web程序 时间:
2014-12-12 18:30:48
阅读次数:
266