Task #54990
Epic #55070: Workpackages
Epic #55065: WP: Overall System Performance (Backend and Frontend)
Story #55073: review autoloader and language cache
ClassLoader cache ist too slow, no matter which CF Backend is used
0%
Description
while Profiling a 6.2 installation with XHProf I found that the most expensive part of the request is always the classloader cache - no matter which CF backend is used for it.
the attached callgraphs both show the delivery of a cached page, one with the default configuration (simple file backend) and one with the classloader cache Backend set to memcached.
In both cases we see that either file_get_contents() or Memcach::get() is the most expensive function.
the request times (mesured with the adminPanel) are almost the same in both cases: ~155ms with simple file backend and 150 ms with memcache
Since memcache should be way faster than the filesystem I think there's a lot of room for optimizing in the classloader.
Files
Related issues
Updated by Helmut Hummel over 8 years ago
Hi Rupi,
Rupert Germann wrote:
Since memcache should be way faster than the filesystem I think there's a lot of room for optimizing in the classloader.
I'm looking at the graph and the code and really asking myself where the room is for optimizing. Given the cache is populated, the code is pretty straightforward and only does 3 things:
- lookup the cache entry
- get the cache entry
- require the class file
Can you elaborate how this could be optimized?
Updated by Helmut Hummel over 8 years ago
Rupert Germann wrote:
In both cases we see that either file_get_contents() or Memcach::get() is the most expensive function.
The memcache backend is also not optimal here. Can you check the performance with an APC backend?
Updated by Helmut Hummel over 8 years ago
Numbers from my Server for incl wall time of loadClass
- SimpleFileBackend: 61,557
- ApcBackend: 23,505
APC is roughly 3 times faster
Updated by Rupert Germann over 8 years ago
Yes, indeed APC is way faster here.
But the point is: I don't want to use accelerators just to make a site usable.
In case I really need an accelerator because my site has a huge load than I'm already out of options.
Updated by Mathias Schreiber over 7 years ago
- Status changed from New to Resolved
composer classloader solves this