Problem/Motivation

The following services are initialized on every HTML request, but rarely needed:

  • 'config.manager'
  • 'config.typed'

Proposed resolution

TODO

Remaining tasks

User interface changes

API changes

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

tim.plunkett’s picture

Component: configuration entity system » configuration system

Is this doable in 8.0.x or should it be bumped?

dawehner’s picture

Issue summary: View changes

IMHO if everything works, this could be done in 8.0.x

Adapted the issue summary because config.installer is already lazy

One important thing to keep in mind is that changes like that DON'T require a container rebuild, as a non lazy variant works the same.

claudiu.cristea’s picture

Status: Active » Needs review
FileSize
14.5 KB

Not sure :)

Wim Leers’s picture

Do we need profiling or not?

claudiu.cristea’s picture

@Wim Leers, I guess we lazy load for performance reasons. I would say Yes, but maybe @dawehner knows better.

dawehner’s picture

IMHO it is always nice to know what is going on, instead of just, guessing. IMHO even if it doesn't matter much, its still from a general understanding of our project, nice to see what those kind of changes help us.

Wim Leers’s picture

Issue tags: +needs profiling
claudiu.cristea’s picture

Assigned: Unassigned » Wim Leers

@Wim Leers, can you provide some benchmarks?

dawehner’s picture

Everyone should be able to do profiling, IMHO. Relying on specific persons to do that, is a sign of a unhealthy community

claudiu.cristea’s picture

Assigned: Wim Leers » Unassigned

@dawehner I have no problem to do that. I just don't know what scenario to test. It's not clear for me what page should be tested, I guess a page where the 2 services are not needed but how I determine that? Is there an inspector module that shows us what services are used on a specific page?

dawehner’s picture

Well, as the issue summary says, this happened on every HTML request.

claudiu.cristea’s picture

Assigned: Unassigned » dawehner

How I ran the benchmark:

  1. Installed Drupal 8.0.x with 'standard' profile. URL: http://localhost/8/review
  2. $ drush pmu -y page_cache dynamic_page_cache
    
  3. $ drush cr ; sudo apachectl -k restart ; ab -n500 -c1 http://localhost/8/review
    
  4. Results:
    Concurrency Level:      1
    Time taken for tests:   0.266 seconds
    Complete requests:      500
    Failed requests:        0
    Non-2xx responses:      500
    Total transferred:      251000 bytes
    HTML transferred:       117000 bytes
    Requests per second:    1880.71 [#/sec] (mean)
    Time per request:       0.532 [ms] (mean)
    Time per request:       0.532 [ms] (mean, across all concurrent requests)
    Transfer rate:          921.99 [Kbytes/sec] received
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0    0   0.0      0       1
    Processing:     0    0   2.6      0      57
    Waiting:        0    0   2.6      0      57
    Total:          0    1   2.6      0      58
    
  5. Applied the patch from #3
  6. $ drush cr ; sudo apachectl -k restart ; ab -n500 -c1 http://localhost/8/review
    
  7. Results:
    Concurrency Level:      1
    Time taken for tests:   0.260 seconds
    Complete requests:      500
    Failed requests:        0
    Non-2xx responses:      500
    Total transferred:      251000 bytes
    HTML transferred:       117000 bytes
    Requests per second:    1921.43 [#/sec] (mean)
    Time per request:       0.520 [ms] (mean)
    Time per request:       0.520 [ms] (mean, across all concurrent requests)
    Transfer rate:          941.95 [Kbytes/sec] received
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0    0   0.0      0       0
    Processing:     0    0   2.3      0      51
    Waiting:        0    0   2.3      0      51
    Total:          0    0   2.3      0      51
    

So HEAD has 1880.71 (±2.6) vs. #3 that is 1921.43 (±2.3). Even if looks like a relevant delta, I'm not so sure that the difference is so big. But, anyway, at least we know that #3 is not a performance regression.

I'm passing this to @dawehner for review.

dawehner’s picture

Well, its at least 2%. There are worse things to do.

claudiu.cristea’s picture

@dawehner, does this issue need anything else?

dawehner’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: -needs profiling

IMHO no

claudiu.cristea’s picture

Assigned: dawehner » Unassigned

OK.

Wim Leers’s picture

Yay!

alexpott’s picture

Status: Reviewed & tested by the community » Needs work
Issue tags: +needs profiling

I'm not sure I believe the benchmarks in #12. If we have 0.5ms response then Drupal 8 has got significantly faster.

alexpott’s picture

Given the results below I'm not sure that there is much of a boost here... comparing first runs shows a boost but the second run without the patch is as fast as with the patch.

Without patch

Concurrency Level:      1
Time taken for tests:   53.803 seconds
Complete requests:      500
Failed requests:        0
Total transferred:      8493000 bytes
HTML transferred:       8242500 bytes
Requests per second:    9.29 [#/sec] (mean)
Time per request:       107.607 [ms] (mean)
Time per request:       107.607 [ms] (mean, across all concurrent requests)
Transfer rate:          154.15 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       0
Processing:    89  107 101.1     99    1906
Waiting:       80   97  99.3     89    1848
Total:         89  108 101.1     99    1906

Percentage of the requests served within a certain time (ms)
  50%     99
  66%    101
  75%    102
  80%    103
  90%    106
  95%    112
  98%    122
  99%    149
 100%   1906 (longest request)

On second run...

Requests per second:    9.49 [#/sec] (mean)
Time per request:       105.319 [ms] (mean)
Time per request:       105.319 [ms] (mean, across all concurrent requests)
Transfer rate:          157.50 [Kbytes/sec] received

With patch

Concurrency Level:      1
Time taken for tests:   52.767 seconds
Complete requests:      500
Failed requests:        0
Total transferred:      8493000 bytes
HTML transferred:       8242500 bytes
Requests per second:    9.48 [#/sec] (mean)
Time per request:       105.534 [ms] (mean)
Time per request:       105.534 [ms] (mean, across all concurrent requests)
Transfer rate:          157.18 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    91  105  89.5     98    1868
Waiting:       82   95  87.7     89    1812
Total:         91  105  89.5     98    1869

Percentage of the requests served within a certain time (ms)
  50%     98
  66%    100
  75%    101
  80%    102
  90%    105
  95%    113
  98%    124
  99%    155
 100%   1869 (longest request)

On second run

Requests per second:    9.49 [#/sec] (mean)
Time per request:       105.335 [ms] (mean)
Time per request:       105.335 [ms] (mean, across all concurrent requests)
Transfer rate:          157.48 [Kbytes/sec] received
Wim Leers’s picture

Well spotted, Alex. 0.5 ms is even faster than page cache. I was gonna say "concurrency higher than 1", but that's also not the case. Not sure what #12 tested then, but it's definitely not Drupal.

This should get actual profiling, using XHProf. The numbers in #19 may be skewed also, because DB I/O has a higher variance that can easily obscure this.

claudiu.cristea’s picture

@Wim Leers. The explanation has been provided by @Berdir on IRC:

Non-2xx responses:      500

It seems that there was an error (500 or something else) while ran the benchmark. I didn't pay attention to that line.

Yes, wee need to profile and see function calls, etc.

claudiu.cristea’s picture

Issue summary: View changes
Status: Needs work » Needs review
Issue tags: -needs profiling
FileSize
24.17 KB
21.21 KB
22.74 KB
22.07 KB

Here's the profiling.

HEAD cold

HEAD warm

Patch cold

Patch warm

Looks like a small regression.

EDIT: I repeated several times the whole scenario but the deltas were more or less the same.

Wim Leers’s picture

What profiling tool is this? It's definitely not XHProf's default UI.

claudiu.cristea’s picture

@Wim Leers, I installed xhprof on my Mac $ brew install homebrew/php/php55-xhprof. Then I enabled the https://www.drupal.org/project/xhprof module.

alexpott’s picture

Hmmm using a module to generate XHProf data is not really the best way. Here's a warm cache compared with and without the patch where the Xhprof code is added by Apache. The test was the frontpage standard with no content and the anonymous user. I repeat the runs with and without the patch until the number of functions calls remains the same.

Run (HEAD) Run (PATCHED) Diff Diff%
Number of Function Calls 18,112 18,080 -32 -0.2%
Incl. Wall Time (microsec) 88,311 84,844 -3,467 -3.9%
Incl. MemUse (bytes) 10,128,264 10,190,520 62,256 0.6%
Incl. PeakMemUse (bytes) 10,157,624 10,219,840 62,216 0.6%
Function Name Calls Diff Calls
Diff%
Incl. Wall
Diff
(microsec)
IWall
Diff%
Excl. Wall
Diff
(microsec)
EWall
Diff%
Incl.
MemUse
Diff
(bytes)
IMemUse
Diff%
Excl.
MemUse
Diff
(bytes)
EMemUse
Diff%
Incl.
PeakMemUse
Diff
(bytes)
IPeakMemUse
Diff%
Excl.
PeakMemUse
Diff
(bytes)
EPeakMemUse
Diff%
apc_fetch -4 -12.5% -331 -9.5% -331 -9.5% -416 -0.7% -416 -0.7% -1,056 -1.7% -1,056 -1.7%
Symfony\Component\ClassLoader\ApcClassLoader::findFile -4 -12.5% -477 -13.8% -146 -4.2% -624 -1.0% -208 -0.3% -2,384 -3.8% -1,328 -2.1%
Drupal\Component\DependencyInjection\Container::get@3 -3 -9.4% -2,161 -62.3% -24 -0.7% 39,368 63.2% 8 0.0% 36,688 59.0% 0 0.0%
spl_autoload_call@5 -3 -9.4% -39 -1.1% -7 -0.2% -2,632 -4.2% 1,184 1.9% 8 0.0% -752 -1.2%
Symfony\Component\ClassLoader\ApcClassLoader::loadClass@5 -3 -9.4% -32 -0.9% 39 1.1% -3,816 -6.1% -1,608 -2.6% 760 1.2% -4,176 -6.7%
Drupal\Component\DependencyInjection\Container::get@6 3 9.4% -1,210 -34.9% -10 -0.3% 696 1.1% 736 1.2% -776 -1.2% 0 0.0%
Drupal\Component\DependencyInjection\Container::resolveServicesAndParameters@2 -2 -6.2% -2,176 -62.8% -36 -1.0% 38,584 62.0% -784 -1.3% 36,800 59.1% 0 0.0%
Drupal\Component\DependencyInjection\Container::createService@2 -2 -6.2% -3,249 -93.7% -84 -2.4% 64 0.1% -1,040 -1.7% 6,552 10.5% -960 -1.5%
Drupal\Component\DependencyInjection\Container::get@2 -2 -6.2% -3,390 -97.8% -27 -0.8% -264 -0.4% 5,600 9.0% -4,840 -7.8% 0 0.0%
Drupal\Core\Plugin\DefaultPluginManager::alterInfo -1 -3.1% 0 0.0% 0 0.0% -696 -1.1% -696 -1.1% -608 -1.0% -608 -1.0%
load::f7563866_status-messages.html.twig_cba75ae9329c283d4fdb231a028058481bfc02421fbe2ae64258e049cc0a2870/73023b5340f8935a477e6c2e48c8d7424cf21ce354a1c32e9004baa0dd850f4b.php 1 3.1% 18 0.5% 18 0.5% 4,168 6.7% 4,168 6.7% 3,968 6.4% 3,968 6.4%
unserialize -1 -3.1% -959 -27.7% -845 -24.4% 4,440 7.1% 4,448 7.1% -3,416 -5.5% -3,440 -5.5%
Symfony\Component\ClassLoader\ApcClassLoader::loadClass@3 -1 -3.1% -122 -3.5% -14 -0.4% -6,392 -10.3% -248 -0.4% -7,656 -12.3% -824 -1.3%
load::f7563866_status-messages.html.twig_cba75ae9329c283d4fdb231a028058481bfc02421fbe2ae64258e049cc0a2870/4f84a901c1cac52c6cdda3349023b199362cfb037c10dd69a5039bf92f43acfa.php -1 -3.1% -14 -0.4% -14 -0.4% -4,168 -6.7% -4,168 -6.7% -3,968 -6.4% -3,968 -6.4%
assert -1 -3.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 240 0.4% 240 0.4%
Drupal\Core\Config\TypedConfigManager::__construct -1 -3.1% -9 -0.3% -6 -0.2% -3,976 -6.4% -1,488 -2.4% -2,872 -4.6% -1,168 -1.9%
load::f7563866_status-messages.html.twig_cf9e644522bf0f29e5beb896b1ee25d35a19943a77efe167274688eec0db0624/0fb68e99c649567e36bb2d2babb5d97f92d8caed2c18d3314af0a966060ec9a9.php -1 -3.1% -24 -0.7% -24 -0.7% -11,960 -19.2% -11,960 -19.2% -10,568 -17.0% -10,568 -17.0%
Drupal\Core\ProxyClass\Config\TypedConfigManager::__construct 1 3.1% 1 0.0% 1 0.0% 720 1.2% 720 1.2% 408 0.7% 408 0.7%
???_op@4 -1 -3.1% -43 -1.2% -4 -0.1% -4,512 -7.2% -1,880 -3.0% -2,040 -3.3% -2,048 -3.3%
spl_autoload_call@1 -1 -3.1% -1,103 -31.8% -68 -2.0% -39,536 -63.5% 384 0.6% -39,488 -63.5% 96 0.2%
???_op@3 -1 -3.1% -67 -1.9% -8 -0.2% -648 -1.0% 8 0.0% -2,592 -4.2% -2,816 -4.5%
spl_autoload_call@4 1 3.1% -54 -1.6% 1 0.0% -656 -1.1% -400 -0.6% 224 0.4% 72 0.1%
Symfony\Component\ClassLoader\ApcClassLoader::loadClass@4 1 3.1% -55 -1.6% -9 -0.3% -256 -0.4% 824 1.3% 152 0.2% 872 1.4%
spl_autoload_call@2 1 3.1% -911 -26.3% -14 -0.4% -16,728 -26.9% -416 -0.7% -18,456 -29.7% -8 -0.0%
Drupal\Core\Config\ExtensionInstallStorage::__construct -1 -3.1% -2 -0.1% -2 -0.1% -816 -1.3% -816 -1.3% -488 -0.8% -488 -0.8%
???_op@1 -1 -3.1% -953 -27.5% -40 -1.2% -29,008 -46.6% -12,280 -19.7% -30,520 -49.1% -12,064 -19.4%
???_op -1 -3.1% -984 -28.4% -130 -3.7% -64,984 -104.4% -25,448 -40.9% -59,616 -95.8% -20,128 -32.4%
Symfony\Component\ClassLoader\ApcClassLoader::loadClass@2 1 3.1% -947 -27.3% -38 -1.1% -16,312 -26.2% 536 0.9% -18,448 -29.7% 256 0.4%
Drupal\Component\DependencyInjection\Container::createService@5 1 3.1% -1,581 -45.6% -37 -1.1% 3,544 5.7% -936 -1.5% 1,080 1.7% -584 -0.9%
Symfony\Component\ClassLoader\ApcClassLoader::loadClass@1 -1 -3.1% -1,130 -32.6% -118 -3.4% -39,920 -64.1% -256 -0.4% -39,584 -63.6% 1,168 1.9%
Drupal\Core\Plugin\DefaultPluginManager::setCacheBackend -1 -3.1% -4 -0.1% -4 -0.1% -840 -1.3% -840 -1.3% -40 -0.1% -280 -0.5%
Symfony\Component\ClassLoader\ApcClassLoader::loadClass -1 -3.1% -2,883 -83.2% -201 -5.8% -59,496 -95.6% -200 -0.3% -52,120 -83.8% 192 0.3%
Drupal\Component\DependencyInjection\Container::get@5 1 3.1% -1,635 -47.2% -15 -0.4% 3,712 6.0% -2,720 -4.4% 3,680 5.9% 0 0.0%
spl_autoload_call@3 -1 -3.1% -126 -3.6% -4 -0.1% -6,000 -9.6% 392 0.6% -7,568 -12.2% 88 0.1%
load::f7563866_status-messages.html.twig_cf9e644522bf0f29e5beb896b1ee25d35a19943a77efe167274688eec0db0624/19c4bc91f4bca13d95cd4ed4b3ef3e44a58a73f53925028864d6fefa1f662821.php 1 3.1% 27 0.8% 27 0.8% 11,960 19.2% 11,960 19.2% 10,568 17.0% 10,568 17.0%
load::Config/InstallStorage.php -1 -3.1% -28 -0.8% -28 -0.8% -8,432 -13.5% -8,432 -13.5% -5,552 -8.9% -5,552 -8.9%
load::TypedData/TypedDataManager.php -1 -3.1% -30 -0.9% -30 -0.9% -8,480 -13.6% -8,480 -13.6% -5,376 -8.6% -5,376 -8.6%
load::Config/ExtensionInstallStorage.php -1 -3.1% -22 -0.6% -22 -0.6% -3,848 -6.2% -3,848 -6.2% 0 0.0% 0 0.0%
Drupal\Component\DependencyInjection\Container::resolveServicesAndParameters@5 1 3.1% -1,253 -36.1% -15 -0.4% 384 0.6% 392 0.6% -736 -1.2% 0 0.0%
load::Config/FileStorage.php -1 -3.1% -622 -17.9% -622 -17.9% -9,464 -15.2% -9,464 -15.2% -9,096 -14.6% -9,096 -14.6%
spl_autoload_call -1 -3.1% -2,872 -82.8% -103 -3.0% -59,136 -95.0% 360 0.6% -52,144 -83.8% -24 -0.0%
run_init::Context/RequestStackCacheContextBase.php 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\RequestStackCacheContextBase::__construct 0 0.0% -4 -0.1% -4 -0.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/RequestStackCacheContextBase.php 0 0.0% -7 -0.2% -7 -0.2% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Site\MaintenanceMode::applies 0 0.0% -110 -3.2% -11 -0.3% 0 0.0% 0 0.0% 64 0.1% 0 0.0%
Drupal\dynamic_page_cache\EventSubscriber\DynamicPageCacheSubscriber::__construct 0 0.0% -1 -0.0% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\user\EventSubscriber\MaintenanceModeSubscriber::onKernelRequestMaintenance 0 0.0% -108 -3.1% -4 -0.1% 0 0.0% 0 0.0% 64 0.1% 0 0.0%
Drupal\Core\EventSubscriber\MaintenanceModeSubscriber::__construct 0 0.0% -2 -0.1% -2 -0.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\CacheContextsManager::getService 0 0.0% -907 -26.2% -37 -1.1% -32 -0.1% 0 0.0% -96 -0.2% 0 0.0%
load::Render/BareHtmlPageRenderer.php 0 0.0% -15 -0.4% -15 -0.4% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
run_init::Render/BareHtmlPageRendererInterface.php 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\ProxyClass\Render\BareHtmlPageRenderer::__construct 0 0.0% -1 -0.0% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\EventSubscriber\MaintenanceModeSubscriber::onKernelRequestMaintenance 0 0.0% -24 -0.7% -4 -0.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::RequestPolicy/DefaultRequestPolicy.php 0 0.0% -12 -0.3% -12 -0.3% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\CacheContextsManager::optimizeTokens 0 0.0% -926 -26.7% -97 -2.8% -32 -0.1% 0 0.0% 24 0.0% 8 0.0%
Drupal\Core\Cache\Context\CacheContextsManager::parseTokens 0 0.0% -34 -1.0% -31 -0.9% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Render/BareHtmlPageRendererInterface.php 0 0.0% -9 -0.3% -9 -0.3% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::EventSubscriber/DynamicPageCacheSubscriber.php 0 0.0% -17 -0.5% -17 -0.5% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\dynamic_page_cache\PageCache\RequestPolicy\DefaultRequestPolicy::__construct 0 0.0% -2 -0.1% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/RequestFormatCacheContext.php 0 0.0% -10 -0.3% -10 -0.3% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\RouteCacheContext::__construct 0 0.0% -1 -0.0% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/LanguagesCacheContext.php 0 0.0% -14 -0.4% -14 -0.4% -32 -0.1% -32 -0.1% 0 0.0% 0 0.0%
load::Context/CalculatedCacheContextInterface.php 0 0.0% -12 -0.3% -12 -0.3% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Render\RenderCache::createCacheID 0 0.0% -3,265 -94.2% -6 -0.2% -24 -0.0% 0 0.0% -2,600 -4.2% 0 0.0%
Drupal\Core\Cache\CacheableMetadata::applyTo 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\ContextCacheKeys::getKeys 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\CacheableMetadata::createFromRenderArray 0 0.0% -3 -0.1% -3 -0.1% 8 0.0% 8 0.0% 8 0.0% 8 0.0%
run_init::Context/CalculatedCacheContextInterface.php 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\LanguagesCacheContext::__construct 0 0.0% -2 -0.1% -2 -0.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/PathCacheContext.php 0 0.0% -33 -1.0% -33 -1.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\PathCacheContext::getCacheableMetadata 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext::getCacheableMetadata 0 0.0% -18 -0.5% -16 -0.5% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/MenuActiveTrailsCacheContext.php 0 0.0% -15 -0.4% -15 -0.4% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\LanguagesCacheContext::getCacheableMetadata 0 0.0% -1 -0.0% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\CacheContextsManager::convertTokensToKeys 0 0.0% -3,245 -93.6% -47 -1.4% -32 -0.1% 0 0.0% -2,608 -4.2% 0 0.0%
Drupal\Core\Cache\CacheableMetadata::merge 0 0.0% -91 -2.6% -65 -1.9% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Routing\CurrentRouteMatch::getRouteMatch 0 0.0% -55 -1.6% -31 -0.9% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Routing\CurrentRouteMatch::getCurrentRouteMatch 0 0.0% -58 -1.7% -6 -0.2% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\State\State::get 0 0.0% -38 -1.1% -3 -0.1% 8 0.0% 8 0.0% 96 0.2% 0 0.0%
run_init::Context/CacheContextInterface.php 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/RouteCacheContext.php 0 0.0% -10 -0.3% -10 -0.3% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/CacheContextInterface.php 0 0.0% -8 -0.2% -8 -0.2% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Routing\RouteMatch::getRouteName 0 0.0% -2 -0.1% -2 -0.1% 0 0.0% 0 0.0% 1,072 1.7% 1,072 1.7%
Drupal\Core\Routing\CurrentRouteMatch::getRouteName 0 0.0% -54 -1.6% -6 -0.2% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Context/ContextCacheKeys.php 0 0.0% -13 -0.4% -13 -0.4% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\ContextCacheKeys::__construct 0 0.0% -1 -0.0% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\RouteCacheContext::getContext 0 0.0% -92 -2.7% -13 -0.4% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
serialize 0 0.0% -3 -0.1% -3 -0.1% 16 0.0% 16 0.0% -464 -0.7% -464 -0.7%
Drupal\Core\Routing\CurrentRouteMatch::getRawParameters 0 0.0% -16 -0.5% -5 -0.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Cache\Context\RequestFormatCacheContext::getContext 0 0.0% -5 -0.1% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
load::Site/MaintenanceModeInterface.php 0 0.0% 1 0.0% 1 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Extension\ModuleHandler::verifyImplementations 0 0.0% 1 0.0% 1 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Extension\ModuleHandler::getImplementationInfo 0 0.0% 164 4.7% -9 -0.3% 11,016 17.7% 0 0.0% 15,280 24.6% 4,408 7.1%
Drupal\Core\Extension\ModuleHandler::getImplementations 0 0.0% 159 4.6% -5 -0.1% 11,000 17.7% -16 -0.0% 15,232 24.5% -48 -0.1%
Drupal\Core\Entity\EntityHandlerBase::moduleHandler 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\user\Entity\Role::postLoad 0 0.0% 0 0.0% -1 -0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Entity\Entity::postLoad 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
uasort 0 0.0% 1 0.0% 1 0.0% 0 0.0% 0 0.0% 0 0.0% 0 0.0%
Drupal\Core\Entity\EntityStorageBase::postLoad 0 0.0% 170 4.9% 3 0.1% 11,000 17.7% 0 0.0% 14,680 23.6% -552 -0.9%
Drupal\Core\Config\Entity\ConfigEntityStorage::setStaticCache 0 0.0% 1 0.0% -1 -0.0% 8 0.0% 0 0.0% -240 -0.4% 0 0.0%
claudiu.cristea’s picture

Well, #25, shows some progress in terms of response time even function calls and memory are increasing. But the time is what concerns us, right?

Now what?

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev
Berdir’s picture

Status: Needs review » Closed (cannot reproduce)

Stumbled over this. Did some checks with blackfire, config managed does not show up, with enabled or disabled page cache.

I suspect that was related to config entities and setting their values, we've removed the runtime dependency on typed config/config schema for that a long time ago.

I do see some possibly micro-optimizations, like putting the default timezone into the container similar to how we handle the default language, but that's not related to this.