-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
3.8.3
-
MOODLE_38_STABLE
-
MDL-68719-remove-file-exists
There are certain pages and code paths that call file_exists() a plain ridiculous number of times looking for files that might exist but typically don't. Like 10,000+ times on a single page!
One such code path is:
theme_config::resolve_image_location
|
This looks for icons in a bunch of locations:
Every single on of those attempts is multiplied here:
The problem is that most shared file systems perform great at reads which are heavily cached, not so great at writes, but importantly they don't cache read exist misses. A typical read miss might be a few hundred microseconds, but 10k of these calls adds up to a couple seconds.
An example page which is poorly affected is:
/admin/plugins.php
|
I've personally never seen the features of falling back to pix icons on dataroot but I'm hesitant to remove it.
So I'm proposing a very generic settings something like $CFG->allowpixoverrides which if set to false avoids these: