自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

转载 PHP7内核剖析之变量的内部实现

PHP7内核剖析之变量的内部实现转自http://mp.weixin.qq.com/s/xgG8S5m8icpTUvG6r0uAsAPHP变量实现的基础结构是zval,各种类型的实现均基于此结构实现,是PHP中最基础的一个结构,每个PHP变量都对应一个zval,下面就看下这个结构以及PHP变量的内存管理机制。zval结构zval结构比较简单,内嵌

2017-03-06 10:22:15 1191

原创 xhprof php7问题

xhprof php7 问题 xhprof 是facebook 开发的一个测试php性能的扩展,现存的问题xhprof不支持php7,代码已经几年没有更新过了, 由于Facebook的优化方向是HHVM,所以这个扩展可以预见不会再有官方维护了。目前github上有一些个人维护的php7版本, 但是完成的质量都不高,存在各种坑,很不幸我们踩了一个: 内存泄漏内存泄漏test环境之前安装的版本: http

2017-03-03 18:21:22 949

原创 PHP内核原理(三)zval类型转换和操作

PHP内核原理 Zvals类型转换及操作基本操作由于zvals是一个复杂的结构体,所以你不能直接对其进行操作如:zv1 + zv2。即使最为简单的操作如+对于zvals来说也是极为复杂的,因为你必须适应不同的类型, 比如:php允许你对double类型与string类型相加(3.14 + ‘17’), 甚至允许你

2017-02-23 20:46:48 1511

原创 PHP内核原理(二)内存管理

PHP内核原理 Zvals内存管理zval结构有两个功能:第一,用于存储一个变量的值以及变量类型。第二,有效的管理内存中的zval变量的值,本章将会介绍这个功能。接下来我们看一下引用计数和copy-on-write 这两个概念,以及在扩展中如何应用。值和引用在php中所有的变量都是值传递,除非你显示的指明引用传递。即任何时刻你传递一个变量给个函数或者给另外一个变量赋值,你得到的两个变量都会拥有一份独

2017-02-21 19:54:35 502

原创 PHP内核原理(一)Zvals基本结构

Zvals 基本结构php内核中使用zval表示一个php变量。一个zval(zend value 的简写)结构可以表示一个任意的php变量,这是整个php内核中最重要的数据结构,本章将会介绍zval的基本概念以及如何使用。Types and values每个zval中存储了一个变量的值以及变量的类型。 这点非常必要,因为php是一个动态类型的语言,变量的类型是在运行阶段确定的,而不是编译阶段。另外

2017-02-21 19:52:58 878

原创 PHP Internals Book PHP内核原理

PHP Internals Book PHP内核原理本文部分翻译自PHP Internals Book, 部分章节源于自己平时的总结。一来作为自己的读书笔记;二来,翻译出来方便对扩展开发有兴趣的同学一起学习。时间关系预计一周左右更新一节。欢迎讨论。目录Zvalszval基本结构内存管理Hashtables

2017-02-21 19:49:10 970

原创 PHP扩展开发学习资料汇总

PHP扩展开发资料汇总, 在学习扩展开发的过程中,发现了很多有用的资料,在此与大家分享 Sara Golemon 大神写的Extending and Embedding PHPGeorge Schlossnagle 写的Advanced PHP ProgrammingBlake Schwendiman所著Building Custom PHP Extensions鸟哥的博客

2017-02-21 17:47:54 479

原创 Active Record 设计模式原理及简单实现

Active Record 设计模式原理及简单实现概述本文简要介绍Active Record 设计模式。Active Record 是一种数据访问设计模式,它可以帮助你实现数据对象Object到关系数据库的映射。应用Active Record 时,每一个类的实例对象唯一对应一个数据库表的一行(一对一关系)。你只需继承一个abstract Active Record 类就可以使用该设计模

2017-02-10 10:49:22 14372 1

原创 PHP Yac cache 源码学习笔记

YAC 源码学习笔记

2017-02-04 16:26:55 2948

转载 mmap详解

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域

2017-02-04 11:41:00 284

原创 PHP VLD扩展查看opcode

转自:http://www.phppan.com/ VLD(Vulcan Logic Dumper)是一个在Zend引擎中,以挂钩的方式实现的用于输出PHP脚本生成的中间代码(执行单元)的扩展。 它可以在一定程序上查看Zend引擎内部的一些实现原理,是我们学习PHP源码的必备良器。它的作者是Derick Rethans, 除了VLD扩展,我们常用的XDebug扩展的也有该牛人的身影。

2017-01-25 10:49:50 360

原创 PHP变量加1的几种方式对比

PHP 变量加1的几种方式天下武功唯快不破,同一个功能往往都有多种实现方式,那么对于强迫症患者,追求完美的程序原来说,那种方式才是最快的呢, 他们的区别又是什么呢?下面会探究下几个典型的例子。$i = $i + 1 <?php $i = 0; $i = $i + 1; echo $i;利用vld 扩展打印opcode如下所以$i = $i + 1 执行过程是,将$i ,

2017-01-24 15:39:11 5117

php扩展开发文档

PHP 扩展开发教程

2017-01-24

php扩展开发

2017-01-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除