文章列表

Elasticsearch 内存那点事

March 11, 2017

今天,我们不谈世界上最好的语言,来聊一聊 Elasticsearch。使用 ELK 栈也有一段时间了,踩了不少坑,今天就给大家分享一个。 先铺垫一下背景,ELK 做为日志收集服务相信大家都不陌生。我最开始选型 ELK 也并没有脱离它最擅长的场景 – 收集业务上报日志。对上报后的日志,我们需要统计加工,最后生成统...

PHP 内核分析:Zend 虚拟机

February 26, 2017

PHP 是一门解释型的语言。诸如 Java、Python、Ruby、Javascript 等解释型语言,我们编写的代码不会被编译成机器码运行,而是会被编译中间码运行在虚拟机(VM)上。运行 PHP 的虚拟机,称之为 Zend 虚拟机,今天我们将深入内核,探究 Zend 虚拟机运行的原理。 OPCODE 什么是...

时间管理随想

February 21, 2017

上周给自己制定了一个周计划,把博客从 Linode 里迁移到 Github Page,顺便换一个 SS 服务器。这个想法早在去年就诞生了,却一直被拖延到了现在。以前一直觉得是拖延症在作祟,觉得自己有病,总想找个什么药方治一治。有时喝了点鸡汤,就觉得自己被治好了,可没过几天又旧症复发。最后,我觉得自己可能都没有救了...

PHP 内核分析经验谈:工具篇

February 04, 2017

最近,我在分析 PHP 内核的过程中,使用到一些工具,总结了这些工具的使用方法,分享给大家。 VLD VLD(Vulcan Logic Dumper)是 PHP 的一个扩展。它以钩子的方式嵌入到 Zend 引擎中,收集并打印 PHP 脚本编译时期产生所有的 OPCODE。使用它,我们可以很方便地查看 PHP ...

PHP 内核分析:类与对象

February 01, 2017

类是什么,什么是对象,相信不需要我在这里解释。本文也不是要说什么OO思想,而是想探究一个问题。作为 PHP 底层的实现 C 语言,是一个面向过程的语言,C 语言是如何构建出可以使用类与对象的 PHP(PHP 绝对称不上是面向对象的语言),这就是本文探讨的重点。为了方便查阅,也方便说明,以下所涉及的源码和实现均来源...