LAMP-各PHP加速器性能剖析

简介:

参与测试的加速器:Xcache,Opcache,hhvm


Xcache简介

前面已经介绍了PHP加速器的原理和功用(参见LAMP-PHP-fpm服务器配置),xcache作为目前使用广泛的PHP加速器之一,其性能比早期的eAccelerator加速器要优良,故本次就对比一下PHP程序在执行时加速器xcache对其的性能影响。


安装xcache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安装
tar  xf xcache-3.0.3. tar .gz
cd  xcache-3.0.3
/usr/local/php/bin/phpize  # xcache是作为php的外接模块安装的
. /configure  -- enable -xcache --with-php-config= /usr/local/php/bin/php-config
make  &&  make  install
# 安装结束时,会出现类似如下行:
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
# 编辑php.ini,整合php和xcache:
# 首先将xcache提供的样例配置导入php.ini
mkdir  /etc/php .d  # 这是前面安装PHP时配置的配置文件扫描目录
cp  xcache.ini  /etc/php .d  # xcache.ini文件在xcache的源码目录中。
# 接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:
extension =  /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache .so
# 如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位。
# 查看xcache是否已安装成功:
/usr/local/php/bin/php  -m | grep  -i xcache


Opcache简介

新一代PHP加速器,由Zend公司研发,其实现原理与Xcache类似,都是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,但性能却比Xcache更加优越,详见测试结果

安装Opcache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
wget http: //pecl .php.net /get/zendopcache-7 .0.2.tgz
tar  xzf zendopcache-7.0.2.tgz
cd  zendopcache-7.0.2
/usr/local/php/bin/phpize
. /configure  --with-php-config= /usr/local/php/bin/php-config
make
make  install
# 配置文件设置,可直接在php.ini的最后添加如下内容,但在此在PHP配置文件的扫描目录php.d下配置新文件opcache.ini,易于管理,php-config-scan-dir是在编译安装PHP时定义的
# vi /etc/php.d/opcache.ini
[opcache]
zend_extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/opcache .so
opcache.memory_consumption=128  # 分配的内存大小,单位MB,即能够存储多少预编译的PHP代码
opcache.interned_strings_buffer=8  # interned字符串占内存大小,单位MB
opcache.max_accelerated_files=4000  # 允许缓存的文件最大数量
opcache.revalidate_freq=60  # 多长时间检查文件时间戳,以改变共享内存分配,单位为s
opcache.fast_shutdown=1  # 是否开启快速关闭队列功能,1为开启
opcache.enable_cli=1  # 允许缓存CLI下的PHP程序
#检查模块安装成功:/usr/local/php/bin/php -m |grep -i opcache


hhvm简介

HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点;

hhvm将PHP代码编译转换成C++程序来执行,执行效率得到显著提升;

根据 Facebook透漏,HHVM在速度方面获得了显著改进,比目前使用的PHP解释器快60%,而使用内存减少90%

安装hhvm

因为目前hhvm还处以研发阶段,国内用于生产环境的还很少,安装所需的环境比较复杂(如CentOS6.5下的boost-system和boost-filesystem的版本就过低),故本人还在调试测试阶段,等出了测试结果,再将hhvm的测试结果一并贴出。


测试步骤

1
2
3
4
5
6
# 另找一台虚拟机,对HTTPD服务器(192.168.1.110)进行压力测试
# 测试工具使用Apache自带的基准测试工具ab即可
# 测试方法如下:
ab -c 20 -n 2000 http: //192 .168.1.110:8080 /index .php
# 注:测试采用20并发,在不影响访问的情况下,查看xcache加速器的加速效果;测试页面使用上一讲刚部署的phpMyAdmin的登录页面index.php即可
# 注:为了更好的测试出PHP加速器的缓存特性,可连续多测试几次,得到稳定值

测试结果对比

wKiom1NGEwaQ9ENgAA0tM6AlzIM464.jpg

从上图可以看出,PHP加速器对PHP程序的执行过程加速明显;综合每秒的请求数和PHP服务器的负载来看:

xcache使得PHP程序的执行效率提升了3-4倍;

Opcache使得PHP程序的执行效率提升了6-7倍;

据说hhvm对PHP程序的加速效果更加强悍,敬请期待!











本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1383568,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
PHP 对象存储 Docker
阿里云云效产品使用问题之PHP和LAMP项目部署回滚不生效,该怎么办
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8天前
|
安全 测试技术 PHP
如何评估PHP框架的性能?
【9月更文挑战第2天】如何评估PHP框架的性能?
25 5
|
2月前
|
编译器 PHP 开发者
探索PHP 8的新特性与性能优化技巧
【7月更文挑战第19天】在数字时代的浪潮中,PHP作为一门广泛使用的服务器端脚本语言,其最新版本PHP 8的发布引起了开发者社区的广泛关注。本文将深入探讨PHP 8引入的一系列新特性,包括但不限于JIT编译器、联合类型、命名参数、匹配表达式等,并分享如何利用这些新工具提升代码的性能和可维护性。同时,我们还将讨论一些实用的性能优化技巧,帮助开发者写出更加高效、稳定的PHP应用。
|
25天前
|
SQL 缓存 数据库连接
拯救php性能的神器webman-数据库
Webman 框架与这些最佳数据库管理实践的结合,可为应用程序提供快速响应的用户体验,高吞吐量,提升应用程序的整体性能表现。在对数据库交互进行设计和开发时,持续关注性能指标和优化,确保数据库层面不会成为应用程序的瓶颈,这样便能充分利用 Webman 来提升 PHP 应用的性能。
54 4
|
1月前
|
存储 前端开发 JavaScript
优化PHP代码性能
【8月更文挑战第3天】优化PHP代码性能
40 16
|
1月前
|
存储 缓存 自然语言处理
|
2月前
|
缓存 安全 测试技术
深入PHP 7:新特性与性能提升解析
在PHP 7的发布中,我们见证了一系列令人兴奋的性能改进和新特性的加入。本文将深入探讨这些变化如何影响开发者的日常编程实践,并展示通过实际例子如何最大化利用PHP 7的优势。准备好迎接代码效率和开发体验的全新升级!
|
2月前
|
存储 监控 大数据
深入理解PHP 7的新特性及其性能优化技巧
【7月更文挑战第26天】随着PHP 7的发布,这一广泛使用的编程语言迎来了重大的性能提升和新特性。本文将深入探讨PHP 7的核心改进点,包括性能提升的原因、新引入的语言特性以及如何利用这些变化来优化现有和未来的PHP项目。我们将通过实际代码示例和性能分析工具来展示如何有效地应用这些新特性以达到最佳的性能表现。
|
25天前
|
缓存 安全 编译器
探索PHP 8的新特性:提升现代Web开发的效率与性能
PHP 8的推出标志着这个流行的服务器端脚本语言迈入了一个新的时代。本文将深入探讨PHP 8中引入的一些关键新特性,包括JIT编译器、联合类型、命名参数、弱引用等,并解释这些特性如何为开发者提供更高效的编程工具和改进的性能。我们将通过实际代码示例来展示这些新特性的应用,帮助读者理解如何利用PHP 8来构建更快、更可靠、更易于维护的Web应用。
28 0
|
2月前
|
缓存 IDE 编译器
深入理解PHP 7的新特性及其性能优化技巧
【7月更文挑战第21天】本文旨在探索PHP 7版本中引入的关键新特性,并结合实例分析这些特性如何提升开发效率与应用性能。我们将从类型声明的强化、抽象语法树(AST)的运用到错误处理机制的改进等方面进行讨论,同时揭示性能优化的实用技巧,帮助开发者充分利用PHP 7的强大功能。
下一篇
DDNS