PHP开启opcache提升代码性能


Posted in PHP onApril 26, 2015

配置指令如下:

[opcache]
zend_extension=opcache.so
opcache.enable_cli=1
;共享内存大小, 这个根据你们的需求可调
opcache.memory_consumption=256   
;interned string的内存大小, 也可调
opcache.interned_strings_buffer=8
;最大缓存的文件数目
opcache.max_accelerated_files=4000
;60s检查一次文件更新
opcache.revalidate_freq=60
;打开快速关闭, 打开这个在PHP Request Shutdown的时候 会收内存的速度会提高
opcache.fast_shutdown=1
;不保存文件/函数的注释
opcache.save_comments=0

实际性能对比:

下面是实际测试中没有开启opcache的数据:

[root@localhost ~]# ab -n 10000 -c 200 "http://112.126.69.14/main.php?a=Role&m=createRole"
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 112.126.69.14 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests

Server Software:    openresty/1.7.2.1
Server Hostname:    112.126.69.14
Server Port:      80

Document Path:     /main.php?a=Role&m=createRole
Document Length:    2 bytes

Concurrency Level:   200
Time taken for tests:  26.061 seconds
Complete requests:   10000
Failed requests:    20
  (Connect: 0, Receive: 0, Length: 20, Exceptions: 0)
Write errors:      0
Non-2xx responses:   20
Total transferred:   1713580 bytes
HTML transferred:    23520 bytes
Requests per second:  383.72 [#/sec] (mean)
Time per request:    521.216 [ms] (mean)
Time per request:    2.606 [ms] (mean, across all concurrent requests)
Transfer rate:     64.21 [Kbytes/sec] received

Connection Times (ms)
       min mean[+/-sd] median  max
Connect:    2  3  3.2   2   60
Processing:  17 461 905.0  219  16496
Waiting:    17 461 904.9  219  16496
Total:     21 464 905.0  222  16502

Percentage of the requests served within a certain time (ms)
 50%  222
 66%  271
 75%  369
 80%  412
 90%  805
 95%  1248
 98%  2597
 99%  3489
 100% 16502 (longest request)

开启之后的数据:

[root@localhost ~]# ab -n 10000 -c 200 "http://112.126.69.14/main.php?a=Role&m=createRole"
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 112.126.69.14 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:    openresty/1.7.2.1
Server Hostname:    112.126.69.14
Server Port:      80

Document Path:     /main.php?a=Role&m=createRole
Document Length:    2 bytes

Concurrency Level:   200
Time taken for tests:  14.237 seconds
Complete requests:   10000
Failed requests:    0
Write errors:      0
Total transferred:   1711710 bytes
HTML transferred:    20020 bytes
Requests per second:  702.40 [#/sec] (mean)
Time per request:    284.739 [ms] (mean)
Time per request:    1.424 [ms] (mean, across all concurrent requests)
Transfer rate:     117.41 [Kbytes/sec] received

Connection Times (ms)
       min mean[+/-sd] median  max
Connect:    2  66 272.6   2  3005
Processing:   4 176 666.4   6  9026
Waiting:    4 163 642.8   6  9026
Total:     6 242 745.7   9  10028

Percentage of the requests served within a certain time (ms)
 50%   9
 66%   14
 75%   99
 80%  122
 90%  1006
 95%  1476
 98%  2853
 99%  3543
 100% 10028 (longest request)

以上所述就是本文的全部内容,希望大家能够喜欢。

PHP 相关文章推荐
PHP下10件你也许并不了解的事情
Sep 11 PHP
pdo中使用参数化查询sql
Aug 11 PHP
深入理解php的MySQL连接类
Jun 07 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
php格式化电话号码的方法
Apr 24 #PHP
php生成年月日下载列表的方法
Apr 24 #PHP
PHP传参之传值与传址的区别
Apr 24 #PHP
php获取访问者IP地址汇总
Apr 24 #PHP
php实现的RSS生成类实例
Apr 23 #PHP
php利用事务处理转账问题
Apr 22 #PHP
ThinkPHP文件缓存类代码分享
Apr 22 #PHP
You might like
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
用console.table()调试javascript
2014/09/04 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
jquery replace方法去空格
2017/05/08 jQuery
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
Python 初始化多维数组代码
2008/09/06 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
Python中的hypot()方法使用简介
2015/05/18 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
python socket 聊天室实例代码详解
2019/11/14 Python
python 发送get请求接口详解
2020/11/17 Python
竞争性谈判邀请书
2014/02/06 职场文书
承诺函格式模板
2015/01/21 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript