PHP 缓存加速器介绍

操作码缓存

请求一个 PHP 程序时,PHP 引擎会解析程序,并且将编译码作为特定操作码。这是要执行的代 码的一种二进制表示形式。随后,此操作码有 PHP 引擎执行并丢弃。操作码缓存将保存这个编 译后的操作码,并在下一次调用该页面时重用它,这就节省了重复编译的时间。

为了提高 PHP 引擎的执行效率,PHP 缓存加速器设计的目的是缓存 PHP 解析过的操作码,这样 同样的请求访问过来,PHP 引擎就不需要解析了。可以直接调用 PHP 操作码,就提高 WEB 服 务器的响应速度。从而提高了用户的访问体验。

一句话:

PHP 加速器是一个为了提高 PHP 执行效率,从而缓存起 PHP 的操作码,这样 PHP 后面执行就 不用解析转换了,可以直接调用 PHP 操作码,这样速度上就提高了不少。

在 LAMP 环境中,使用的是 libphp5.so 响应并处理 PHP 程序的请求。

响应执行的流程大概如下:

1.    Apache 接收客户 PHP 程序请求

2.    Apache 将 PHP 程序请求传递给 libphp5.so(mod_php)

3.    libphp5.so(mod_php)定位磁盘上的 PHP 文件,并加载到内存

4.    libphp5.so(mod_php)编译源代码称为 opcode 树

5.    libphp5.so(mod_php)执行 opcode 树

注意:

PHP 加速器相应的就是第四步,它的目的就是防止 PHP 每次请求都重复编译 PHP 代码,因为在 高访问量的网站上,大量的编译往往没有执行速度快呢?所以这里面有个瓶颈就是 PHP 的重复编 译既影响了速度又加载了服务器负载,为了解决此问题,PHP 加速器就这样诞生了。 参考文档:http://www.vpser.net/opt/apc-eaccelerator-xcache.html参数详解:http://www.oschina.net/question/17_4150

151

PHP 缓存加速器安装环境准备

Lamp 基础 web 环境准备

在安装 PHP 扩展及缓存加速之前,需要安装好 lamp 的基本环境。配置如下:

Linux centos6.5

Apache 2.2.27

Mysql 5.1.72

Php 5.3.27

PHP 加速器的正式安装配置

sed awk

正则表达式

正则表达式是一种描述方法,一种小型的语言。用字符来表示某种含义的符号

一个点代表一个字符

例 1:样式 .T. 代表 3 个字符,中间是 T,左右两边是任意的一个字符 例 2:… 代表字符长度是 3 的字符串,若要比对,则需要加转义符\
样式:data\... 代表 data.后接 3 个字符,如 data.txt data.cfg data.123

^在行首

例如:样式^jack 代表 jack 应出现在行首,才符合条件。如 jack chen

$在尾部

例如:样式 123$  代表在行的后面是 123,才符合条件。如 jack123

[…]字符集合 […]代表字符串行中的一个字符(长度为 1 个字符) 样式 1: [ABc] 代表 A 或 B 或 c 这三个字符中的一个 样式 2:[Ss]name 代表 Same 或 sname
以下常见用法

[A-Z]                                                             一个大写字母

[a-z]                                                             一个小写字母
[0-9]            一个数字

[^A-Z]                                                 除了大写字母之外的一个字符
[^a-zA-Z]        一个非英文字母的字符

[^a-zA-Z0-9]                                        一个非英文字母,并且非数字的字符

152

^出现在括号里的第一个位置,代表“非/不是”的意思

*出现 0 个以上

*代表前面的字符有 0 个或者 0 个以上

例如:aA*c    代表 A 这个字符可能出现 0 个或者 0 个以上            如:ac aAc aAAc

\{…\}指定符合的个数

指定前面字符的个数

例如:\{3,5\} 表示前面的字符有 3 到 5 个。[a-z]\{3,5\}代表以小字母组成的字符串,长度是 3 到 5

\(..\)把比对符合的字符串暂时保存起来

例如:H\(..\)y 表示要保存 H 和 y 之间的 3 个字符

若要提取保存的字符串,可以用位置参数。\1 代表第一个保存的字符串,\2 代表第二个保存的字符

PHP WEB 引擎缓存加速优化的更多相关文章

  1. php缓存加速优化--Xcache

    1.安装软件:cd /usr/local/src/下载软件包wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache- 3.2.0.tar.b ...

  2. Linux实战教学笔记36:PHP服务缓存加速深度优化实践

    一,PHP缓存加速器介绍与环境准备 1.1 PHP缓存加速器介绍 1.1.1 操作码介绍及缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(Ope ...

  3. H5 缓存机制浅析 移动端 Web 加载性能优化

    腾讯Bugly特约作者:贺辉超 1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5 引入的离线存储, ...

  4. WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

    VPS主机性能配置如果太差,则在运行Wordpress博客和Discuz! 论坛等高消耗程序时能够明显感觉出VPS有些吃力.另外,即使VPS主机的CPU.内存.硬盘I/O等性能足够好,但是在面对大流量 ...

  5. 移动 H5(PC Web)前端性能优化指南

    原文地址https://zhuanlan.zhihu.com/p/25176904?utm_source=wechat_session&utm_medium=social&utm_me ...

  6. PHP缓存加速插件 XCache 、 ZendOpcache 安装

    PHP缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(OperateCode,简称opcode)文件,该文件是PHP代码的一种二进制表示方式.默 ...

  7. Mysql5.5 InnoDB存储引擎配置和优化

    环境为CentOS系统,1G内存,Mysql5.5.30.在/etc/my.cnf内添加: 复制代码代码如下: skip-external-lockingskip-name-resolvemax_co ...

  8. PHP7安装Memcache+Memcached缓存加速WordPress教程

    PHP7安装Memcache+Memcached缓存加速WordPress教程 2016年1月19日 6,691 Views 生活方式 PHP7最显著的变化就是性能的极大提升,已接近Facebook开 ...

  9. 对JavaScript 引擎基础:原型优化的研究 -----------------------引用

    一.优化层级与执行效率的取舍 介绍了现代 JavaScript 引擎通用的工作流程: 我们也指出,尽管从高级抽象层面来看,引擎之间的处理流程都很相似,但他们在优化流程上通常都存在差异.为什么呢?为什么 ...

随机推荐

  1. DS博客作业--课程总结

    1.当初你是如何做出选择计算机专业的决定的? 经过一年学习,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 刚开始填报志愿的时候,因为我个人是没有什么比较特别 ...

  2. Error running 'Tomcat 9.0.241': port out of range:-1

    这种情况很容易解决,别急. 修改默认配置,tomcat的server.xml检查一下,端口不能是-1, 一般会选80,或者1-65535之间的任意一个整数 路径:C:\Program Files\Ap ...

  3. LeetCode 120. 三角形最小路径和(Triangle)

    题目描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...

  4. [论文理解] Attentional Pooling for Action Recognition

    Attentional Pooling for Action Recognition 简介 这是一篇NIPS的文章,文章亮点是对池化进行矩阵表示,使用二阶池的矩阵表示,并将权重矩阵进行低秩分解,从而使 ...

  5. Edge Detection

      Edge Detection Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22604   Accepted: 5311 ...

  6. java 深入HashMap

    HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据 ...

  7. Gradle 依赖

    在开发中,我们经常使用compile,api,implementation引入库,这三种是有区别的. 1 api和compile api和compile关键字作用效果是一样的,使用时可以互相替换. 实 ...

  8. OpenCV学习笔记(8)——图像平滑

    使用不同的低筒滤波器对图像进行模糊 使用自定义的率弄起对图像进行卷积(2D卷积) 2D卷积 与信号一样,我们也可以对2D图像实施低通滤波,高通滤波等.LPF帮助我们去除噪声,模糊图像.而HPF帮助我们 ...

  9. Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的 Service?

    Activity 通过 bindService(Intent service, ServiceConnection conn, int flags)跟 Service 进行绑定,当绑定成功的时候 Se ...

  10. Python学习-------变量和简单的数据类型(String)

    1.变量命名和使用 变量命名规则:a.变量名只能包含(字母    数字   下划线),且变量不能以数字开头,例如:变量 s_1(正确),变量1_s(错误) b.变量名不能包含空格,可以使用下划线来间隔 ...