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中调用JAVA
Oct 09 PHP
php学习笔记之面向对象编程
Dec 29 PHP
PHP实现邮件群发的源码
Jun 18 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
分享8个最佳的代码片段在线测试网站
Jun 29 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
laravel框架创建授权策略实例分析
Nov 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计算程序运行时间的简单例子分享
2014/05/10 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
JavaScript 密码强度判断代码
2009/09/05 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
Python爬虫设置代理IP的方法(爬虫技巧)
2018/03/04 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
pandas通过索引进行排序的示例
2018/11/16 Python
详解python-图像处理(映射变换)
2019/03/22 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Python 线程池用法简单示例
2019/10/02 Python
Python的几种主动结束程序方式
2019/11/22 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
如何强制垃圾回收
2015/10/06 面试题
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
采购部岗位职责
2013/11/24 职场文书
技术总监管理职责范本
2014/03/06 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
Java基础-封装和继承
2021/07/02 Java/Android
「月刊Action」2022年5月号封面公开
2022/03/21 日漫