Php加速原理及工具试验
Php加速原理及工具测试
本实验相关软件地址:http://pan.baidu.com/s/1dDuwvE5
第一部分。Php加速分类:
一.缓冲层级别的优化
1.xCache是把 PHP 操作码缓存到内存中的 PHP 扩展中,XCache 将避免代价高昂且不必要的花费来重新编译相同的 PHP 代码去交付一个页面,这一点上和Accelerator有点相似,我一直认为他们的机理是一样的,不过xCahce是开源产品[opensource].
2.Zend Accelerator 站在解析和执行的中间,当页面第一次被请求时,Zend 引擎解析了它,而Accelerator 把解析的映象放入内存,然后执行并把信息发送给浏览器。 好像也叫Zend Cache。
3.Memcache 守护程序 (memcached) 是一种高性能分布式对象缓存。memcached 的安装位置介于应用程序与数据存储之间,它将把对象保存在 RAM 中。每次缓存命中将替换到数据库服务器的一次往返,使应用程序运行得更快。非常适合访问量大的网站使用。
4.APC (Alternative PHP Cache)它对php opcode进行缓冲,而不是迫使php在每一次执行的时候都重新解释每一个脚本.
二.优化代码级别
Zend Optimizer就要对PHP 源码作相应的调整,比如去掉一些PHP注释,使得代码更容易编译。
三.编程时级别的优化
XDebug 是类似于软件 x 光照片的内容:它将深入应用程序,揭露内部工作原理,并且揭示代码如何度过其周期。拥有了 XDebug 度量之后 —— 而不是之前 —— 您可以优化代码来调整算法、减少瓶颈并减轻过多的内存使用。
第二部分。加速演示
我在这里给大家用php5.4版本来演示在CentOS6.4下几种不同的加速器的加速效果。
1.Opcache(在php5.5以后得版本中都已经被内置);
2.Xcache;
3.APC (Alternative PHP Cache)
演示之前要先安装php5.4:
1.拆包:
[root@centos ~]# tar -jxvf php-5.4.24.tar.bz2 -C /usr/local/src/
2.进入 /usr/local/src/目录,执行安装:
[root@centos php-5.4.24]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all
3.最后make 和make install:
[root@centos php-5.4.24]# make && make install
4.创建php.ini,它是指明php扩展功能,如加速等功能的文件;
[root@centos php-5.4.24]# cp php.ini-development /usr/local/php/lib/php.ini
5.测试php与apache的连接:
在httpd站点主目录下新建静态网页:
[root@centos ~]# cd /usr/local/apache/htdocs/
[root@centos htdocs]# vim index.php 写入如下:
<?php
phpinfo();
?>
在浏览器内用(http://服务器地址) 方式访问服务器;
出现php版本信息的话则连接正常。
一.Zend OPCache:
1.安装
[root@centos ~]# tar -xzf zendopcache-7.0.2.tgz -C /usr/local/src/
[root@centos ~]# cd /usr/local/src/zendopcache-7.0.2/
添加pocache的扩展模块:
[root@centos zendopcache-7.0.2]# /usr/local/php/bin/phpize
执行安装环境:
[root@centos zendopcache-7.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config
执行最后的安装:
[root@centos zendopcache-7.0.2]# make && make install
2.配置
编辑php.ini文件:
vim /usr/local/php/lib/php.ini 在下面添加下面内容:
[opcache]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
3.测试opcache.so的调用:
打开浏览器,输入http://192.168.2.101/(具体主机ip),出现opcache模块为正常;

4.安装phpmyadmin并利用httpd的压力测试工具ab进行性能测试;
安装phpmyadmin并放到apache的站点主目录下;
[root@centos ~]# unzip phpMyAdmin-4.1.5-all-languages.zip
[root@centos ~]# mv phpMyAdmin-4.1.5-all-languages /usr/local/apache/htdocs/phpmyadmin
5..在开启opcache时测试:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分测试信息如下,不同的机器测试结果不一样:

5.关闭opcache时测试:
关闭opcache:具体做法是编辑/usr/local/php/lib/php.ini 文件,把我们加入的关于opcache的所有内容前面加分号(;),保存后重启httpd服务[root@centos ~]# service httpd restart。
再次测试:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分测试信息如下:

这就对比出opcache加速时处理并发连接请求的速度提升。
二.Xcache:
1.安装xcache:
[root@centos ~]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src/
[root@centos ~]# cd /usr/local/src/xcache-3.1.0
[root@centos xcache-3.1.0]# /usr/local/php/bin/phpize
[root@centos xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
[root@centos xcache-3.1.0]# make && make install
进入目录/usr/local/src/xcache-3.1.0,
[root@centos xcache-3.1.0]# cat xcache.ini >> /usr/local/php/lib/php.ini
2.编辑usr/local/php/lib/php.ini文件
加入下面一行:
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
3.测试xcache.so的调用:
打开浏览器,输入http://192.168.2.101/(具体主机ip),出现xcache模块为正常;

4.测试加速效果:
1.在开启xcache时测试:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分测试信息如下,不同的机器测试结果不一样:

2.关闭xcache时测试:
关闭xcache:具体做法是编辑/usr/local/php/lib/php.ini 文件,把我们加入的关于xcache的所有内容前面加分号(;),保存后重启httpd服务[root@centos ~]# service httpd restart。
再次测试:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分测试信息如下:

经过对比可以看到xcache的加速效果。
三.APC (Alternative PHP Cache)
1.安装
tar -zxvf APC-3.1.10.tgz -C /usr/local/src/
[root@centos APC-3.1.10]# /usr/local/php/bin/phpize
[root@centos APC-3.1.10]# ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
[root@centos APC-3.1.10]# make && make install
2.编辑:/usr/local/php/lib/php.ini
在后面加入:
[apc]
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/apc.so
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl = 3600
apc.cache_by_default = on
保存,重启httpd服务;
3.测试加载模块情况;
访问服务器:http://192.168.2.101/ 结果出现apc模块即可。

4.测试加速情况:
1.开启apc加速时:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分结果如下:

2.关闭apc加速时:
关闭apc加速:
编辑/usr/local/php/lib/php.ini:
把添加的apc的几行代码都屏蔽掉;(前面加分号;)
重启httpd服务;[root@centos lib]# service httpd restart
查看处理能力,
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分结果显示:

可以看到加速效果没有前两个明显,但是还是能起到一点加速能力的。
感谢大家阅读!
Php加速原理及工具试验的更多相关文章
- MIP缓存加速原理 MIP不仅仅只是CDN
什么是MIP?我想我们现在都知道.可是你真的了解MIP吗?MIP加速原理是什么?MIP 是用 CDN 做加速的么?准确答案是:是,但不只是. 很多人并认为MIP百度排名会靠前,甚至权重会提高?作为一个 ...
- .NET应用程序调试—原理、工具、方法
阅读目录: 1.背景介绍 2.基本原理(Windows调试工具箱..NET调试扩展SOS.DLL.SOSEX.DLL) 2.1.Windows调试工具箱 2.2..NET调试扩展包,SOS.DLL.S ...
- 什么是网站CDN服务,CDN加速原理?
转载:http://server.zzidc.com/fwqcjwt/728.html 摘要:在为您的网站打开速度发愁吗?您有没有发现有些大网站每天拥有几十万或者上百万,甚至几亿用户的访问,而且不同用 ...
- 『开发技术』GPU训练加速原理(附KerasGPU训练技巧)
0.深入理解GPU训练加速原理 我们都知道用GPU可以加速神经神经网络训练(相较于CPU),具体的速度对比可以参看我之前写的速度对比博文: [深度应用]·主流深度学习硬件速度对比(CPU,GPU,TP ...
- 详解HTTPS加速原理
HTTPS是什么? http叫超文本传输协议,使用TCP端口80,默认情况下数据是明文传送的,数据可以通过抓包工具捕获到,因此在interner上,有些比较重要的站点的http服务器需要使用PKI(公 ...
- CDN加速原理
原文链接:http://www.72e.net/cdnspeed/cdnyuanli.aspx 首先,让我们来看一下传统的Internet网络的基本结构和数据传输情况,如下图所示. Internet ...
- CDN及CDN加速原理
本想自己写这个主题的文章,但网上已经有人写了一篇非常好的文章,觉得难以望其项背.就没有必要再写,直接转载如下: 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度.优化现有Inte ...
- Linux就业技术指导(四):企业CDN缓存加速原理解密
1.1 CDN(网站加速) 1.1.1 什么是CDN CDN的全称Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和 ...
- GPU硬件加速原理 /转
现代浏览器大都可以利用GPU来加速页面渲染.每个人都痴迷于60桢每秒的顺滑动画.在GPU的众多特性之中,它可以存储一定数量的纹理(一个矩形的像素点集合)并且高效地操作这些纹理(比如进行特定的移动.缩放 ...
随机推荐
- 小程序html 显示 图片处理
let arr = [] for (const v of r.data.data ){ // v.content = v.content.replace(/<img/g ,' <image ...
- Python 网络编程——socket
一 客户端/服务器架构 客户端(Client)服务器(Server)架构,即C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) 理想/目标状态—— 最常用的软件服务器是 ...
- Spring 单例
我们知道 Web 容器本身就是多线程的,Web 容器为一个 Http 请求创建一个独立的线程,所以由此请求所牵涉到的 Spring 容器中的 Bean 也是运行于多线程的环境下.在绝大多数情况下,Sp ...
- 小程序发送 request请求失败 提示不在合法域名列表中的解决方法
可以在小程序开发工具中设置不校验域名.
- 【转】JAVA学习笔记----PL/SQL最差实践
1. 超长的PL/SQL代码 影响:可维护性,性能 症状: 在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包.为什么是最差: 太长的PL/SQL代码不利于阅读,第三方工 ...
- Android:日常学习笔记(6)——探究活动(3)
Android:日常学习笔记(6)——探究活动(3) 活动的生命周期 返回栈 Android中的活动是可以叠加的,我们每启动一个新活动,就会覆盖在原来的活动上,点击Back以后销毁最上面的活动,下面的 ...
- UI控件之UINavigationController
ViewController1 *vc1=[[ViewController1 alloc]init]; UINavigationController *nav1=[[UINavigationContr ...
- BEM(一种 CSS 命名规则)
一. 什么是 BEM BEM的意思就是块(block).元素(element).修饰符(modifier),是由 Yandex 团队提出的一种前端命名方法论. 这种巧妙的命名方法让你的 CSS 类对其 ...
- I.mx6s上移植wm8960驱动(基于linux3.0.101版本)
I.mx6s上移植wm8960驱动 此篇博文只记录移植的步骤,其他不做分析.首先上一张wm8960的硬件连接图: 1 上电操作 配置wm8960的上电脚,文件位置:arch/arm/mach ...
- Windows定时任务没有执行
最近部署网站首页静态化程序,需要定时执行的,由于部署在Windows上,为了方便直接用Windows计划任务做定时了.跑了一段时间发现.首页的静态html文件日期一直是老的,手动执行程序会更新,怀疑任 ...