zoukankan      html  css  js  c++  java
  • PHP WEB 引擎缓存加速优化

    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 代表第二个保存的字符

  • 相关阅读:
    浅谈工业无线技术之天线
    防护等级
    PROFINET如何实现实时性
    2020,我又回来了
    关于ReentrantLock和Condition的用法
    当你在试衣间试衣服,请你务必想起wait()与notify()
    用生活例子来解释Java synchronized块
    关于textview显示特殊符号居中的问题
    扯一扯我的2016
    国庆的这6天
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11333487.html
Copyright © 2011-2022 走看看