php程序执行返回时间过长的原因

关闭xdebug

开发环境我们经常需要调试,因此xdebug我们经常开启,但是线上的环境,我们一定要关闭xdebug。在打开xdebug的时候,我们的程序返回时间平均在200ms以上,可以说非常的慢,但是当我们关掉xdebug的时候,你会发现,平均响应时间会缩短到10ms左右,可以说进20倍的提升,因此线上环境,一定要关闭xdebug,一定要关闭xdebug,一定要关闭xdebug。

mysql的读效率不低

使用redis

 ab -n 10000 -c 10000 http://testredis.com/

 Concurrency Level:      10000
Time taken for tests:   23.533 seconds
Complete requests:      10000
Failed requests:        5941
   (Connect: 0, Receive: 0, Length: 5941, Exceptions: 0)
Total transferred:      2274395 bytes
HTML transferred:       644395 bytes
Requests per second:    424.94 [#/sec] (mean)
Time per request:       23532.568 [ms] (mean)
Time per request:       2.353 [ms] (mean, across all concurrent requests)
Transfer rate:          94.38 [Kbytes/sec] received

使用mysql

 ab -n 10000 -c 10000 http://testredis.com/

 Concurrency Level:      10000
Time taken for tests:   19.323 seconds
Complete requests:      10000
Failed requests:        122
   (Connect: 0, Receive: 0, Length: 122, Exceptions: 0)
Total transferred:      2006710 bytes
HTML transferred:       376710 bytes
Requests per second:    517.52 [#/sec] (mean)
Time per request:       19322.764 [ms] (mean)
Time per request:       1.932 [ms] (mean, across all concurrent requests)
Transfer rate:          101.42 [Kbytes/sec] received

从上面可以看出,mysql的读请求RPS并不弱于redis

写请求更适合redis

ab -n 10000 -c 10000 http://testredis.com/

redis写请求

Concurrency Level:      10000
Time taken for tests:   18.337 seconds
Complete requests:      10000
Failed requests:        1910
   (Connect: 0, Receive: 0, Length: 1910, Exceptions: 0)
Total transferred:      1834820 bytes
HTML transferred:       204820 bytes
Requests per second:    545.34 [#/sec] (mean)
Time per request:       18337.051 [ms] (mean)
Time per request:       1.834 [ms] (mean, across all concurrent requests)
Transfer rate:          97.72 [Kbytes/sec] received

mysql写请求

Concurrency Level:      10000
Time taken for tests:   19.141 seconds
Complete requests:      10000
Failed requests:        18
   (Connect: 0, Receive: 0, Length: 18, Exceptions: 0)
Total transferred:      1641638 bytes
HTML transferred:       11638 bytes
Requests per second:    522.45 [#/sec] (mean)
Time per request:       19140.566 [ms] (mean)
Time per request:       1.914 [ms] (mean, across all concurrent requests)
Transfer rate:          83.76 [Kbytes/sec] received

使用常驻内存

如果每次请求之后资源都销毁,自然会降低响应速度,因此,可以使用swoole 扩展来进行常驻内存,这样的话,将大大提升rps。