我正在尝试使用PHP7和nginx与FastCGI PM在docker容器中构建这个symfony2应用程序。
每次应用程序执行时,我都会在kernel.request和kernel.controller之间获得这个神秘的3秒无法计算的执行时间。
当我在我的流浪汉机器上运行我典型的php5.5 + apache2配置时,这个应用程序没有这个行为,所以我不确定它是不是我的PHP配置或PHP7,但我想知道如果有人之前见过这样的事情,并且知道这里会发生什么?
编辑这里的docker_compose配置:
cafe:
build: /opt/cafe
ports:
- "9981:80"
environment:
- "CAFE_CACHE_DIR=/tmp/cafe/cache"
- "CAFE_LOG_DIR=/var/log/cafe"
- "SF_ENV=local"
volumes:
- /var/log/php7:/var/log/php7
- /var/log/nginx:/var/log/nginx
答案 0 :(得分:3)
如果有人好奇,或有同样的问题,我终于找到了问题,这不是我的预期。当我为PHP7设置这个项目时,我无法使用我通常会拥有的标准Linux发行版,我不得不自己添加所有配置文件。
在仔细分析我的代码之后,我发现确切的行是停滞的,是我在kernel.controller监听器中运行get_browser()(http://php.net/manual/en/function.get-browser.php)的地方。由于我在容器中设置我的php配置时使用的browscap.ini文件,get_browser()出现性能问题。我想,由于某种原因,我使用的browscap.ini文件有解析问题或其他东西。我用lite_php_browscap.ini版本更改了它,现在它运行得非常快,没有任何问题。
答案 1 :(得分:1)
最近也在一个盒子里忙着Symfony的表现。以下最近的文章是我能找到的最好的回顾:
答案 2 :(得分:0)
这是因为Symfony的vendor
目录。它需要太多的IO操作。 VirtualBox同步文件夹的性能非常慢 the benchmark。
您可以将vendor
目录移到同步文件夹之外。就像下面的方式:
这是My question。
但是,最后,我没有最好的解决方案。所以,我已经转移到纯linux 环境来编写我的代码了。