Search code examples
phpapcsystem-callsstrace

avoid access syscall with php apc


I'm trying avoid any unneeded syscall for an apache+php website.

So far I made the following changes:

  • apc.stat = false (to avoid apc checking file for updates)
  • use include instead of include_once (to avoid getting realpath of file)
  • use absolute paths instead of relative paths for include
  • disabled xdebug extension

When testing using strace I don't see any stat calls (the above changes removed them), but I still see access calls (one for every included file):

24592      0.000157 access("/var/www/testweb/vendor/vivid-planet/koala-framework/Kwf/Cache/Simple.php", F_OK) = 0
24592      0.000215 access("/var/www/testweb/vendor/zf1/zend-registry/library/Zend/Registry.php", F_OK) = 0

What causes them and how can I avoid those?


Solution

  • I could find the cause for the access syscall, it's a file_exists in the Composer ClassLoader.

    To avoid that it seems I have to write my own loader...