跟厂长学PHP7内核(五):系统分析生命周期

上篇文章讲述了模块初始化阶段之前的准备工作,本篇我来详细介绍PHP生命周期的五个阶段。 一、模块初始化阶段 我们先来看一下该阶段的每个函数的作用。 1.1、sapi_initialize_request_empty函数 这个函数主要为前面定义的SG宏中的成员变量进行初始化。 1.2、sapi_act ... »

跟厂长学PHP7内核(六):生命周期之请求初始化阶段

上篇文章我们分析了生命周期的模块初始化阶段,大部分是初始化全局变量和各种宏的定义,今天我们来学习一下五大生命周期的第二阶段 请求初始化阶段(php_request_startup)。 一、概览 我们先对请求初始化阶段内的函数做个概览。 函数 | 说明 | php_output_activate() ... »

跟厂长学PHP内核(四):生命周期之开始前的躁动

上一章我们对PHP的源码目录结构有了初步了解,本章我们继续从生命周期的维度对PHP进行剖析。 一、概览 生命周期是什么呢?你可以把它看作执行过程,PHP的生命周期也就是它从开始执行到结束执行的过程。 PHP生命周期有五个阶段,分别为模块初始化阶段、请求初始化阶段、执行阶段、请求关闭阶段、模块关闭阶段 ... »

ArrayList 源码分析 -- 扩容问题及序列化问题

一、前言 这里主要研究到以下问题,通过源码阅读分析探索以下问题的答案。本文不牵涉到更多问题,所以源码只贴出与这些问题直接联系的关键代码块。当然源码中必要的全局常量、方法会贴出。 ArrayList 的继承与实现关系; ArrayList 关于数组和集合的讨论; ArrayList 初始容量是0还是1 ... »

源码:Java集合源码之:数组与链表(一)

数组和链表是数据结构中最基本的部分。 数组 在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据。那么这种结构的数据,在内存中是怎么存放的呢? 数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。 分析这种结构,我们可以得出以下几个结论: 创建一个数组,必须声明其长度, ... »

glusterfs 4.0.1 api 分析笔记1

一般来说,我们写个客户端程序大概的样子是这样的: 我们这里按照程序执行的思路,一句一句的解读程序的执行过程。 1、 fs2 = glfs_new (argv[1]); 1.1 这句内部定义如下:在(glfs.c中)pub_glfs_new 到这里,基本内存资源都已经初始化完毕了,event_pool ... »

lodash源码分析之数组的差集

外部世界那些破旧与贫困的样子,可以使我内心世界得到平衡。 ——卡尔维诺《烟云》 本文为读 lodash 源码的第十七篇,后续文章会更新到这个仓库中,欢迎 star: "pocket lodash" gitbook也会同步仓库的更新,gitbook地址: "pocket lodash" 作用与用法 可 ... »

Groovy实现原理分析——准备工作

欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: GitHub地址: 知乎地址: 首先说明一下为什么要写这样一系列分析Groovy实现原理的博文。我之前在华为大数据部门曾维护过一份规则引擎的项目,该项目说白了就是一种DSL(Domain Specified ... »

以太坊源码机制:挖矿

狗年吉祥,开工利是,我们继续研究以太坊源码。从本篇文章开始,我们会深入到以太坊核心源码中去,进而分析与研究以太坊的核心技术。 关键字:拜占庭,挖矿,矿工,分叉,源码分析,uncle叔块,agent,worker,事件监听 本文基于go ethereum 1.7.3 stable源码版本。源码范围主要 ... »

select, poll, epoll的实现分析

select, poll, epoll都是Linux上的IO多路复用机制.知其然知其所以然,为了更好地理解其底层实现,这几天我阅读了这三个系统调用的源码. 以下源代码摘自Linux4.4.0内核. 预备知识 在了解IO多路复用技术之前,首先需要了解Linux内核的3个方面. 1.等待队列waitqu ... »

Laravel5.5核心架构理解

1、依赖注入 方法传入组件名,框架会自动实例化,方法内可直接使用 例如最常用的requert对象 2、服务容器 其实,Laravel 的核心就是一个 IoC 容器,Laravel 的核心本身十分轻量,并没有什么很神奇很实质性的应用功能。很多人用到的各种功能模块比如 Route(路由)、Eloquen ... »

2、jQuery的一些静态方法

上次粗略说了jQuery的整体结构,这次挑一些静态方法先说一下吧 一、noConflict函数 这个函数是个比较有意思的函数,基本上很少用到,之所以说他是因为这个函数在最下面,太显眼了,先把他解决掉。 noConflict函数是jQuery用来解决$符号和jQuery版本冲突的。如下: 可以看出jQ ... »

lodash源码分析之baseFindIndex中的运算符优先级

我悟出权力本来就是不讲理的——蟑螂就是海米;也悟出要造反,内心必须强大到足以承受任何后果才行。 ——北岛《城门开》 本文为读 lodash 源码的第十篇,后续文章会更新到这个仓库中,欢迎 star: "pocket lodash" gitbook也会同步仓库的更新,gitbook地址: "pocke ... »