
PHP-rdkafka 内核扩展相关源码分析
这篇文章主要针对PHP生态的的kafka组件 php-rdkafka 进行相关的内核源码分析,方便大家把握组件的相关使用,目前文章主要针对kafka生产者部分。一. 样例PHP代码public function __construct($config)
{
$conf = new \RdKafka\Conf();
$conf->set('meta...

PHP-CURL-Guzzle-HTTP-连接复用内核原理
PHP-CURL连接复用内核原理0.写在前面PHP是一个时代的产物,它的底层支持是C语言,因此它在CPU密集型计算或者系统内核调用上有天生的优势,Zend引擎把PHP执行生命期分成了五个阶段1,这五个阶段并不是全部都能常驻进程,这种模式下,对于很多使用场景会造成不好的影响,比如网络IO.对于网络IO中的HTTP请求 , 很多工程师使用 php-curl 系列函数 . 所以这篇文章将从内核角度...

源码阅读:YAF框架系列文章(3) - (yaf_application.c)
这个文件主要围绕Yaf_Application类的注册,这里,按照倒叙的方式来进行讲解。一、注册yaf_application类YAF_STARTUP_FUNCTION(application) {
//定义一个zend_class_entry实例变量
zend_class_entry ce;
/* 初始化一个CLASS ENTRY
#define YAF_INIT_CLASS_...

高级编程:PHP扩展的 INI 配置文件操作
Extension INI Entries (扩展INI配置项)Defining php.ini directives (i.e., INI entries) in an extension is easy. Most of the work involves setting up the global struct explained earlier in Section 14.10.3 ...

源码阅读:YAF框架系列文章(2) - (yaf.c)
这个文件是yaf框架的整体组成框架文件,因为yaf的设计思路是模块化的,因此在这个文件中进行了总体整合。整合的思路分为以下几个部分。INI配置文件的解析注册系统使用的常量注册各个模块对扩展模块的各个生命期做拦截监控注册扩展模块一、INI配置文件解析功能在php_yaf.h文件中对于全局变量进行了定义工作,随后在yaf.c中进行了声明工作,声明操作 ZEND_DECLARE_MODULE_GL...

源码阅读:YAF框架系列文章(1) - (php_yaf.h)
这个文件的核心使命是构建yaf基础定义,这部分定义主要包括对于内核函数的宏定义对于框架变量类型的宏定义对于框架所使用的全局变量进行定义一、对于内核函数进行宏定义#define YAF_STARTUP_FUNCTION(module) ZEND_MINIT_FUNCTION(yaf_##module)
#define YAF_RINIT_FUNCTION(module) ...

开源项目:Ivory-jaeger-php-client :安装文档
一. 背景描述Ivory-jaeger-php-client是一款全链路跟踪客户端工具,基于PHP开发,项目发源自Jaeger-PHP,框架建立在OpenTracing 1.0.0-beta2 ,这篇文章主要讲解工具的安装过程。二. 插件依赖关系插件主体为 Ivory-jaeger-php-client 代码包,这个代码包依赖两个包:opentracing/opentracing ( 1.0...

设计文档: PulseFLow PHP性能监控插件
一. 背景描述随着公司PHP项目体的不断增大,随着不同工程师的功能迭代,如何有效获取PHP项目的执行性能,对于系统整体模块显得异常重要,PulseFlow是一个公司团队内部自研地性能跟踪扩展,它可以在程序员无感知的情况下有效跟踪每一个函数的执行效率,主要分析CPU时间消耗、内存大小消耗,执行次数这三个指标,下面我们将从 PHP生命期 到 组件设计 到 性能优化这三个方面来进行阐述组件。二 ....

编程笔记:检测并分析PHP扩展的内存泄露
1. 背景描述基于C/C++开发的程序,内存管理是很大程度上的工作,我们在这篇文章里来给大家讲解一下如何监控程序体可能存在的内存泄露。工欲善其事必先利其器,这里选择使用 Valgrind 工作来进行内存监控。http://valgrind.org/2. Valgrind工具安装 git clone git://sourceware.org/git/valgrind.git
./auto...

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