PHP开启opcache提升代码性能

 更新时间:2015年04月26日 16:25:05   投稿:hebedich  
APC在PHP5.4及以下版本是性能最好的代码缓存。不过PHP升级到5.5及以上后,APC不再有效。需要使用Zend的OpCache扩展。

配置指令如下:

[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编程基本语法快速入门手册

    这篇文章主要介绍了PHP编程基本语法快速入门的一些知识,包括PHP的数组与循环语句等基础知识点,需要的朋友可以参考下
    2016-01-01
  • php动态绑定变量的用法

    php动态绑定变量的用法

    这篇文章主要介绍了php动态绑定变量的用法,涉及php变量的判定与动态定义的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PHP 登录记住密码实现思路

    PHP 登录记住密码实现思路

    在登录的时候记住用户输入的密码在某些情况下是很有必要的,下面是一个小例子,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-05-05
  • php 如何获取文件的后缀名

    php 如何获取文件的后缀名

    本文给大家汇总了几种使用PHP实现获取文件的后缀名的方法,十分的简单实用,有需要的小伙伴可以参考下
    2016-06-06
  • 通过PHP自带的服务器来查看正则匹配结果的方法

    通过PHP自带的服务器来查看正则匹配结果的方法

    这篇文章主要介绍了通过PHP自带的服务器来查看正则匹配结果的方法,通过这样的方式可以在搬上服务器之前在工作环境上完成很多轻量级的试验,需要的朋友可以参考下
    2015-12-12
  • php处理带有中文URL的方法

    php处理带有中文URL的方法

    这篇文章主要介绍了php处理带有中文URL的方法,涉及php编码转换相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • php字符比较函数similar_text、strnatcmp与strcasecmp用法分析

    php字符比较函数similar_text、strnatcmp与strcasecmp用法分析

    这篇文章主要介绍了php字符比较函数similar_text、strnatcmp与strcasecmp用法,以实例形式详细分析了这三个字符串比较函数的具体用法,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • PHP行为型模式之责任链模式

    PHP行为型模式之责任链模式

    责任链模式,其目的是组织一个对象链处理一个如方法调用的请求。当ConcreteHandler(具体的处理程序)不知道如何满足来自Client的请求时,或它的目的不是这个时,它会委派给链中的下一个Handler(处理程序)来处理
    2023-04-04
  • php中获取关键词及所属来源搜索引擎名称的代码

    php中获取关键词及所属来源搜索引擎名称的代码

    有时候我们需要知道用户通过哪个搜索引擎,通过拿个关键词访问我们页面,当然js也可以实现,但这里介绍下php的实现代码。
    2011-02-02
  • PHP设计模式之命令模式示例详解

    PHP设计模式之命令模式示例详解

    这篇文章主要给大家介绍了关于PHP设计模式之命令模式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论