穷则独善其身,达则兼济天下

工匠之路

标签 PHP高级编程 下的文章

July 25, 2018

开源项目:PulseFLow 性能跟踪扩展

背景描述随着公司PHP项目体的不断增大,随着不同工程师的功能迭代,如何有效获取PHP项目的执行性能,对于系统整体模块显得异常重要,PulseFlow是一个性能跟踪扩展,它可以在程序员无感知的情况下有效跟踪每一个函数的执行效率,主要分析CPU时间消耗、内存大小消耗,这个组件除了能够快速记录每个函数体的性能信息,还具备一系列的发送机制,主要包括共享内存队列(System V 和 Posix)、U...

开源项目:基于UDP协议的日志记录系统(LogDarts)

背景介绍日志对于任何一个需要稳定运行的系统都弥足珍贵,如何构造一个高性能的统一日志平台,首先需要解决的是“记录”,如何用最快、性能损耗最小的方式来记录日志?UDP是一个不错的选择:首先UDP通道的带宽需求小,能达到很好的实时性;其次UDP不需要维持连接,在网络传输中的动作少。有人会说,UDP是不稳定传输、使用时数据风险大。对于这点,我们需要考量具体使用环境,在我们的日志系统中,每台机器都会运...
July 9, 2018

PHP扩展开发2.3:变量在内核中的实现

背景描述所有的编程语言都要提供一种数据的存储与检索机制,PHP也不例外。其它语言大都需要在使用变量之前先定义,并且它的类型也是无法再次改变的,而PHP却允许程序猿自由的使用变量而无须提前定义,甚至可以随时随意的对已存在的变量转换成其它任何PHP支持的数据类型。在程序在运行的时候,PHP还会自动的根据需求转换变量的类型。我认为阅读本书的人都已经是标准的PHP程序猿了,所以你们也肯定体验过PHP...
July 8, 2018

源码阅读:PHP TSRM 线程安全管理器

TSRM 简介在查看php源代码或开发php扩展的时候,会出现大量 TSRMLS_ 宏字样在函数参数的位置,这些宏就是Zend为线程安全机制所提供的(Zend Thread Safety,简称ZTS)用于保证线程的安全 , 是防止多线程环境下以模块的形式加载并执行PHP解释器,导致内部一些公共资源读取错误,而提供的一种解决方法。什么时候需要用 TSRM只要服务器是多线程环境并且PHP以模块的...

PHP扩展开发2.2:线程安全

背景介绍线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。一般来说,线程安全的函数应该为每个调用它的线程分配专门的空间,来储存需要单独保存的状态(如果需要的话),不依赖于“线程惯性”,把多个线程共享的变量正确对待(如,通知编译器该变量为“易失(volatile)”型,阻止其进行一些不恰当的优化),而且,线程安全的函数一...

PHP扩展开发2.1:PHP生命周期

1. PHP SAPI无论是Web模式、FastCgi模式、CLI模式,PHP的工作原理都是一样的,都是作为一种SAPI在运行(Server Application Programming Interface : the API sed by PHP to interface with Web Servers)。当我们在终端敲入php这个命令时候,它使用的是"”command lines a...