Search code examples
phpapc

Does autoload really kill performance when using APC(latest versions/up to date). Benchmarks?


I am trying to find a definite answer to the question that autoload kills performance when using APC and why(benchmarks?)

P.S. Found this link using google/stackoverflow, but I am wondering if this still holds? PHP must been improved to handle this? Because autoload is kind of cool!


Solution

  • Personally, I don't believe relying on __autoload() is good practice. PHP is a loosely typed language, not a lazily typed language. :)

    Check out some performance here:

    Rasmus's answer on this (which you also found) was my guidline through all this years:

    <arnaud_> does autoload have a performance impact when using apc ?
    <Rasmus_> it is slow both with and without apc
    <Rasmus_> but yes, moreso with apc because anything that is autoloaded is pushed down into the executor
    <Rasmus_> so nothing can be cached
    <Rasmus_> the script itself is cached of course, but no functions or classes
    <Rasmus_> Well, there is no way around that
    <Rasmus_> autoload is runtime dependent
    <Rasmus_> we have no idea if any autoloaded class should be loaded until the script is executed
    <Rasmus_> top-level clean deps would speed things up a lot
    <Rasmus_> it's not just autoload
    <Rasmus_> it is any sort of class or function declaration that depends on some runtime context
    <Rasmus_> if(cond) function foo...
    <Rasmus_> if(cond) include file
    <Rasmus_> where file has functions and classes 
    <Rasmus_> or heaven forbid: function foo() { class bar { } }