摘要:
这两天没事,看了一下Memcached和libevent的源码,做个小总结。1、入门1.1、概述Libevent是一个用于开发可扩展性网络服务器的基于事件驱动(event-driven)模型的网络库。Libevent有几个显著的亮点: (1)事件驱动(event-driven),高性能;(2)轻量级... 阅读全文
摘要:
前言 这里我用的系统是centos 6.2,在服务器上的准备工作(服务器IP为10.0.2.8 ):1、安装 openssh服务器与客户端工具[plain] view plaincopy$sudoyuminstallopenssh-serveropenssh-client2、创建个人公钥和私钥(用于... 阅读全文
摘要:
概述在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么 变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内存泄漏情况(Bug:http://bugs.php.net/bug.php?id=33595),引擎将无法回收这些内存,于是在PHP5.3中出现了新的GC,新的GC有专门的机制负责清理垃圾数据,防止内存泄漏。本文将详细的阐述PHP5.3中新的GC运行机制。 目 阅读全文
摘要:
本文的受众如果你遇到了以下问题,那么你应该阅读这篇文章我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影)。 公司为了防止我们用XX软件封锁了它的端口或者服务器地址。 公司不让我们上XX网站,限制了网址甚至IP。 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤。一看XX内容,链接就中断了。 我爸是搞电脑的,他在家里的路由器上动了手脚,我不能看XXX了。 带着这些问题,我们先从什么是ssh隧道开始。什么是SSH隧道首先看下面这张图,我们所面临的大部分情况都和它类似。我们的电脑在右上角,通过公司带有防火墙功能的路由器接入互联网(当然可能 阅读全文
摘要:
1. MySQL数据库主从同步延迟原理。要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binlog是顺序写,所以效率很高,slave的Slave_IO_Running线程到主库取日志,效率很比较高,下一步,问题来... 阅读全文
摘要:
在机子目录下建立 .vim文件夹例如 /home/xxx/.vim在~文件夹下建立.vimrc文件 这是你自己配置文件vim虽然启用了格式化高亮、行号显示,以及括号匹配、自动缩进等编辑功能,对于大多数情况都可以获得理想的编辑体验。不过此时对.php文件的支持还不完善,需要下载专门的php插件。下载地... 阅读全文
摘要:
这个标题有点牵强因为php有不只9种魔术方法, 但是这些将会引导你使用php魔术方法一个好的开始。它可能魔幻,但是并不需要魔杖。 这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在php特定事件下将会被触发。这可能听起来有点自动魔法但是它真的很酷的,我们已经看过一个简单的例子在 last post,即我们使用一个构造器-使用这个作为我们第一个例子 __construct 构造器是一个魔术方法,当对象被实例化时它会被调用。在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承。如果我们想到以前继承例子从 阅读全文
摘要:
第一个参数是HashTable,在1.2.3节提到Zend使用HashTable来存储PHP函数,function_table用于指 定从哪个HashTable中获取函数。通常应该用CG(function_table),展开就是 compiler_globals.function_table,compiler_globals是一个用来存储编译器数据的全局数据结构(与其对应 的还有个EG宏,即executor_globals,它用来存储执行器数据)。compiler_globals.function_table里面存 储了所有我们可以在PHP页面里面调用的函数,包括Zend内建函数、PHP标准库 阅读全文
摘要:
Extensions 的编写理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始。 1.1Hello World这是摘自《PHP手册》的示例程序: 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 阅读全文
摘要:
Linux下用C开发PHP扩展 一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13#> cd /software/php-5.2.13/ext二、假设我们要开发一个名为caleng_module的扩展,该扩展包含两个函数:a--处理两个整型相加和b-处理字符串重复输出;1、首先编写一个函数定义文件,该文件编写函数原型后缀为def,假设为:caleng_module.def[cpp] view plaincopyinta(intx,inty)stringb(stringstr,intn)2、通过扩展骨架生成器,将在ext目录下自动建立扩展目录caleng_ 阅读全文