This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Nicolas Grekas d0db3879d9 feature #23659 [HttpKernel] LoggerDataCollector: splitting logs on different sub-requests (vtsykun)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpKernel] LoggerDataCollector: splitting logs on different sub-requests

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | -
| Fixed tickets | #23620
| License       | MIT
| Doc PR        | -

This PR fixed performance problem in dev mode and prevent logs serialize several times for each sub-request.

STR:
1) Install any symfony application v2.8-3.4
2) Create a simple page with 20-50 sub-requests and 5k-10k logs
3) Open page in dev mode

**Actual**
- debug toolbar not open (404 not found)
- sets of logs (in the logger debug panel) for different requests are same
- log processing takes about 20-30s
- gc also run about 50% of execution time

**Expected**
- Debug toolbar should be open
- As developer, I want to see in logger panel only those logs that are relevant to the given sub-request

### Profile and performance

Tested on page with 7k logs and 70 sub-request.

Comparison:
- v3.3.5 - this patch: https://blackfire.io/profiles/compare/b1d410b3-c4a7-4778-9b6d-514f72193e28/graph
- v3.3.5 - patch #23644 https://blackfire.io/profiles/compare/d0715b04-7834-4981-8da2-9f1dcb2ef90c/graph

Commits
-------

d0cb1de [HttpKernel] LoggerDataCollector: splitting logs on different sub-requests
2018-04-20 11:46:43 +02:00
.composer Drop hirak/prestissimo 2016-05-12 07:44:15 -05:00
.github add hint in Github pull request template 2018-03-18 17:01:38 +01:00
src/Symfony [HttpKernel] LoggerDataCollector: splitting logs on different sub-requests 2018-04-20 11:44:17 +02:00
.editorconfig Add EditorConfig File 2012-06-16 14:08:15 +02:00
.gitignore Add appveyor.yml for C.I. on Windows 2015-08-25 23:41:37 +02:00
.php_cs.dist [DI] Service decoration: autowire the inner service 2018-03-20 19:23:30 +01:00
.travis.yml [Messenger] Add AMQP adapter 2018-04-12 09:15:52 +01:00
appveyor.yml Merge branch '3.4' into 4.0 2018-01-16 19:04:12 +01:00
CHANGELOG-4.0.md updated CHANGELOG for 4.0.8 2018-04-06 18:24:58 +02:00
composer.json [Messenger] Add a new Messenger component 2018-03-23 09:01:52 +01:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md update CONTRIBUTORS for 2.7.45 2018-04-06 14:49:33 +02:00
LICENSE fixed years in copyright 2018-01-03 08:23:28 +01:00
link Update Repository Symlink Helper 2018-02-11 12:15:02 +01:00
phpunit Force phpunit-bridge update (bis) 2017-11-22 10:25:38 +01:00
phpunit.xml.dist [Cache] Rely on mock for Doctrine ArrayCache 2018-03-19 23:12:11 +01:00
README.md Prefer composer install instead for using Symfony Installer 2018-01-10 18:56:50 +01:00
UPGRADE-4.0.md [Form] Fix typo in Upgrade 3.4/4.0 2018-04-06 07:20:49 +02:00
UPGRADE-4.1.md [Console] add support for iterable in output 2018-04-06 18:29:06 +02:00
UPGRADE-5.0.md [SecurityBundle] allow using custom function inside allow_if expressions 2018-04-04 20:31:39 +02:00

Symfony is a PHP framework for web applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.