Task #54990
closed
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
Added by Rupert Germann almost 11 years ago.
Updated about 7 years ago.
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
- Parent task set to #52949
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?
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?
Numbers from my Server for incl wall time of loadClass
- SimpleFileBackend: 61,557
- ApcBackend: 23,505
APC is roughly 3 times faster
- Status changed from New to Needs Feedback
- Status changed from Needs Feedback to New
- Parent task changed from #52949 to #55073
- Category set to Performance
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.
- Status changed from New to Resolved
composer classloader solves this
- Status changed from Resolved to Closed
Also available in: Atom
PDF