编程语言
首页 > 编程语言> > 的APC不会为Symfony1.4 / Doctrine应用程序提供任何性能提升?

的APC不会为Symfony1.4 / Doctrine应用程序提供任何性能提升?

作者:互联网

我正在开发一个应用程序(Symfony 1.4 / Doctrine),该应用程序的某些页面加载起来非常繁重.这些页面之一包含具有很多关系的非常复杂的表单(嵌入式表单).该页面执行以下操作:获取所有对象,创建表单(带有对象),渲染表单.

这导致每页的加载时间约为1.5秒. MySQL似乎不是瓶颈,执行查询大约需要0.01秒.但是,将结果水合需要更多时间:约0.3秒.创建和嵌入所有子窗体也需要大量时间(0.5s).其余时间花在常规的Symfony / Doctrine方法上.所有这些时间都是使用Symfony计时器和/或xdebug找到的.

我希望可以通过使用APC进行操作码缓存来加快生产服务器上的过程.因此,我安装了APC,进行了一些配置(请确定,缓存大小= 400MB;最大文件大小= 20MB),最后对应用程序进行了基准测试.

没有APC:

$ab -n 100
Requests per second:    0.72 [#/sec] (mean)
Time per request:       1392.142 [ms] (mean)
Time per request:       1392.142 [ms] (mean, across all concurrent requests)
Transfer rate:          130.62 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4    5   3.6      4      32
Processing:  1301 1387 258.0   1338    3549
Waiting:     1229 1315 258.2   1267    3475
Total:       1305 1392 258.0   1342    3553

使用APC:

$ab -n 100
Requests per second:    0.86 [#/sec] (mean)
Time per request:       1160.666 [ms] (mean)
Time per request:       1160.666 [ms] (mean, across all concurrent requests)
Transfer rate:          156.67 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4    4   0.7      4       9
Processing:  1071 1156 164.1   1121    2337
Waiting:     1024 1104 164.3   1065    2286
Total:       1075 1161 164.1   1125    2341

有一些改进,但结果令人失望.为确保APC正常运行,我还对运行在同一服务器上的Drupal网站进行了基准测试.这几乎使Drupal网站的请求/秒翻了一番(从4页/秒增加到8页/秒)!很明显,APC在正常工作.

是否有人知道这种缺乏加速的原因是什么?有没有人在有/没有APC的Symfony应用程序上做过一些基准测试?我在应用程序互联网上可以找到一些使请求/秒增加一倍的声明,但都没有基准.

解决方法:

操作码缓存只会加快原始类的加载速度.当代码大部分时间遍历数据库结果,创建复杂对象时,仅APC就无济于事.

Doctrine支持缓存查询和结果,但是,需要配置APC中的缓存.看到这个URL:http://readthedocs.org/docs/doctrine/en/latest/en/manual/caching.html

创建表单后,也许可以使用apc_add缓存表单.这有向用户提供陈旧数据的风险,但这也许是值得的.

要获取更多信息,为什么要花这么长时间,您应该查看profiling with XDebug.

标签:symfony-1-4,apc,benchmarking,php
来源: https://codeday.me/bug/20191101/1982747.html