资讯专栏INFORMATION COLUMN

PHP开启opcache提升代码性能

ivydom / 2014人阅读

摘要:配置指令如下共享内存大小这个根据你们的需求可调的内存大小也可调最大缓存的文件数目检查一次文件更新打开快速关闭打开这个在的时候会收内存的速度会提高不保存文件函数的注释实际性能对比下面是实际测试中没有开启的数据开启之后的数据

配置指令如下:

[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)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30243.html

相关文章

  • 转鸟哥建议:让PHP7达到最高性能的几个建议

    摘要:让达到最高性能的几个建议懒得排版了,伯乐在线链接原文出处惠新宸欢迎分享原创到伯乐头条已经发布了,作为十年来最大的版本升级,最大的性能升级,在多放的测试中都表现出很明显的性能提升,然而,为了让它能发挥出最大的性能,我还是有几件事想提醒下。 让 PHP7 达到最高性能的几个建议 懒得排版了,伯乐在线链接:http://blog.jobbole.com/95657/ 原文出处: 惠新宸(@L...

    dcr309duan 评论0 收藏0
  • 记一次 Laravel 应用性能调优经历

    摘要:为了一探究竟,于是开启了这次应用性能调优之旅。使用即时编译器和都能轻轻松松的让你的应用程序在不用做任何修改的情况下,直接提高或者更高的性能。 这是一份事后的总结。在经历了调优过程踩的很多坑之后,我们最终完善并实施了初步的性能测试方案,通过真实的测试数据归纳出了 Laravel 开发过程中的一些实践技巧。 0x00 源起 最近有同事反馈 Laravel 写的应用程序响应有点慢、20几个并...

    warkiz 评论0 收藏0
  • PHP7.2、PHP7.1 性能对比

    摘要:鸟哥点评相对于主要优化也是在。基于的脚本测试未开启取平均值取平均值开启取平均值取平均值在本次测试中,未开启的情况下,性能比略有提升,开启之后,比有很大的提升。测试结果和配置参数以及服务器配置有关,仅供对比与的性能。 直播好久没有曝光量了,自荐一波《PHP进阶之路》(PHPer们,好久没有投资自己了呢?)原文地址 https://mengkang.net/1019.html PHP7.2...

    li21 评论0 收藏0
  • php中opcode缓存

    摘要:一般执行过程是先检查文件的签名或者修改时间,以防文件有改动。缓存通常都能够大幅度地提升应用程序的执行速度。二有哪些缓存插件于年月中旬改名为,集成,其他的会不会消失三为什么使用缓存主要是为了减少重复编译,从而减少和内存的开销。 一、什么是opcode缓存 当一个 PHP 文件被解释执行的时候,首先是被编译成名为 opcode (CPU 专用的机器语言指令)的中间代码,然后才被底层的虚拟...

    zhangrxiang 评论0 收藏0
  • php中opcode缓存

    摘要:一般执行过程是先检查文件的签名或者修改时间,以防文件有改动。缓存通常都能够大幅度地提升应用程序的执行速度。二有哪些缓存插件于年月中旬改名为,集成,其他的会不会消失三为什么使用缓存主要是为了减少重复编译,从而减少和内存的开销。 一、什么是opcode缓存 当一个 PHP 文件被解释执行的时候,首先是被编译成名为 opcode (CPU 专用的机器语言指令)的中间代码,然后才被底层的虚拟...

    codercao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<